收藏此站 联系我们 网站
当前位置:首页» 技术日志 » 【建站服务】高端!网站定制/设计/优化/二次开发/制作/搭建-怒江高端网站建设-域名申请

【建站服务】高端!网站定制/设计/优化/二次开发/制作/搭建-怒江高端网站建设-域名申请

作者: 风兰 . 阅读量: 3 . 发表时间:2022-09-21 05:52:15

网站建设

上往建站提供服务器空间服务商百度快照排名网站托管百度推广运营,致力于设计外包服务与源代码定制开发360推广搜狗推广,增加网站的能见度及访问量提升网络营销的效果,主营:网站公司,百度推广公司电话,官网搭建服务,网站服务企业排名,服务器空间,英文域名等业务,专业团队服务,效果好。


高端!网站定制/设计/优化/二次开发/制作/搭建-怒江高端网站建设


网站建设.png

=9 cap=9 slice=[0 1 2 3 4 5 6 7 8]numbers == [0 1 2 3 4 5 6 7 8]numbers[1:4] == [1 2 3]numbers[:3] == [0 1 2]numbers[4:] == [4 5 6 7 8]len=0 cap=5 slice=[]len=2 cap=9 slice=[0 1]len=3 cap=7 slice=[2 3 4]

append() 和 copy() 函数

如果想增加切片的容量,我们必须创建一个新的更大的切片并把原分片的内容都拷贝过来。

下面的代码描述了从拷贝切片的 copy 方法和向切片追加新元素的 append 方法。

实例

package main

import "fmt"

func main() {
   var numbers []int
   printSlice(numbers)

   /* 允许追加空切片 */
   numbers = append(numbers, 0)
   printSlice(numbers)

   /* 向切片添加一个元素 */
   numbers = append(numbers, 1)
   printSlice(numbers)

   /* 同时添加多个元素 */
   numbers = append(numbers, 2,3,4)
   printSlice(numbers)

   /* 创建切片 numbers1 是之前切片的两倍容量*/
   numbers1 := make([]int, len(numbers), (cap(numbers))*2)

   /* 拷贝 numbers 的内容到 numbers1 */
   copy(numbers1,numbers)
   printSlice(numbers1)  
}

func printSlice([]int){
   fmt.Printf("len=%d cap=%d slice=%v ",len(x),cap(x),x)
}

以上代码执行输出结果为:

len=0 cap=0 slice=[]len=1 cap=1 slice=[0]len=2 cap=2 slice=[0 1]len=5 cap=6 slice=[0 1 2 3 4]len=5 cap=12 slice=[0 1 2 3 4]


package main

import "fmt"


func main() {

   numbers := []int{0,1,2,3,4,5,6,7,8}

   printSlice(numbers)

   fmt.Println("numbers ==",numbers)

   numbers1 := numbers[1:4]

   printSlice(numbers1)

   fmt.Println("numbers[:3] ==", numbers[:3])

   numbers2 :=numbers[4:]

   printSlice(numbers2)

   numbers3 := make([]int,0,5)

   printSlice(numbers3)

   numbers4 := numbers[:2]

   printSlice(numbers4)

}


func printSlice(x []int){

   fmt.Printf("len=%d cap=%d slice=%v ",len(x),cap(x),x)

}

输出结果:


len=9 cap=9 slice=[0 1 2 3 4 5 6 7 8]

numbers == [0 1 2 3 4 5 6 7 8]

len=3 cap=8 slice=[1 2 3]

numbers[:3] == [0 1 2]

len=5 cap=5 slice=[4 5 6 7 8]

len=0 cap=5 slice=[]

len=2 cap=9 slice=[0 1]

我们可以看出切片,实际的是获取数组的某一部分,len切片<=cap切片<=len数组,切片由三部分组成:指向底层数组的指针、len、cap。


老逗先生

   老逗先生


  104***5037@qq.com


5年前 (2017-12-20)

   LeonWilliam


  257***8572@qq.com


9

package main


import "fmt"


func main() {

   sliceTest()

   twoDimensionArray()

}


func sliceTest() {

   arr := []int{1, 2, 3, 4, 5}

   s := arr[:]

   for e := range s {

      fmt.Println(s[e])

   }

   s1 := make([]int, 3)

   for e := range s1 {

      fmt.Println(s1[e])

   }

}


func twoDimensionArray() {

   /* 数组 - 5 行 2 列*/

   var a = [][]int{{0, 0}, {1, 2}, {2}, {3, 6}, {4, 8}}

   var i, j int


   /* 输出数组元素 */

   for i = 0; i < len(a); i++ {

      for j = 0; j < len(a[i]); j++ {

         fmt.Printf("a[%d][%d] = %d ", i, j, a[i][j])

      }

   }

}

sliceTest 函数是切片测试代码,简单的两种初始化方式。


twoDimensionsArray 函数是二维数组测试函数。


测试结果:


1.二维数组中的元素(一位数组)个数 > 限制的列数,异常;


2.二维数组中的元素(一位数组)个数 <= 限制的列数,正常;


假设列数为 3, 某个一位数组 {1}, 则后两个元素,默认为 0。


LeonWilliam

   LeonWilliam


  257***8572@qq.com


4年前 (2018-03-26)

   jean


  333***2@qq.com


36

我们基于原数组或者切片创建一个新的切片后,那么新的切片的大小和容量是多少呢?


这里有个公式,对于底层数组容量是 k 的切片 slice[i:j] 来说:


长度: j-i

容量: k-i

例子:


package main


import "fmt"

func main() {

    numbers:=[]int{0,1,2,3,4,5,6,7,8,9,10}

    printSlice(numbers)

    fmt.Printf("%d ",numbers[1:3])

    fmt.Printf("%d ",numbers[2:7])

    fmt.Printf("%d ",numbers[:3])

    fmt.Printf("%d ",numbers[4:])

    number1:=make([]int,0,5)

    number2:=numbers[:3]

    printSlice(number1)

    printSlice(number2)

    number3:=numbers[2:5]


高端!网站定制/设计/优化/二次开发/制作/搭建-怒江高端网站建设


上往建站提供搭建网站域名注册官网备案服务网店详情页设计企业网店专业网络店铺管理运营全托管公司咨询电话,服务器空间,微信公众号托管网页美工排版,致力于域名申请竞价托管软文推广全网营销,提供标准级专业技术保障,了却后顾之忧,主营:虚拟主机网站推广百度竞价托管网站建设上网建站推广服务网络公司有哪些等业务,专业团队服务,效果好。

服务热线:400-111-6878 手机微信同号:18118153152(各城市商务人员可上门服务)


关键词:网站建设,企业网站,网站制作,网页设计,高端网站建设,企业网站制作,网页制作,制作网站,网站设计,高端网页设计,高端网站设计,做网站,自适应网站

全国服务热线
18114747181
二维码
手机端二维码
上往建站
地址:全国各地都有驻点商务 |  网站建设上往建站
在线咨询QQ:1120768800
 
QQ在线咨询
售前咨询热线
18114747181
营销顾问
营销顾问
售后服务热线
400-000-1116
售后服务
售后服务