Go-数组和切片的区别

https://www.aliyun.com/minisite/goods?userCode=66ilo1gr

代码演示


package main

import "fmt"

func main()  {
   //切片和数组的区别


   a := [5]int{}
   //数组 数组[] 的长度是固定的常量,数组不能修改长度, len和 cap 固定
   fmt.Printf("len=%d, ca[=%d\n",len(a),cap(a))
   //切片是不固定长度的 不需要指定固定长度 可以增加
   //切片[]里边为空,[...]切片的长度不固定 可以追加
   s := []int{}
   //底层引入一个数组 不能装载下 就会新引入地址 不过对切片本身来说 不变
   //只要知道切片不计入长度就可以 
   fmt.Printf("len=%d,cap=%d\n",len(s),cap(s))
   s = append(s,1)
   fmt.Printf("len=%d,cap=%d\n",len(s),cap(s))
   s = append(s,1)
   fmt.Printf("len=%d,cap=%d\n",len(s),cap(s))
   s = append(s,1)
   fmt.Printf("len=%d,cap=%d\n",len(s),cap(s))
   s = append(s,1)
   fmt.Printf("len=%d,cap=%d\n",len(s),cap(s))
   s = append(s,1)
   fmt.Printf("len=%d,cap=%d\n",len(s),cap(s))
}

执行结果

len=5, ca[=5
len=0,cap=0
len=1,cap=1
len=2,cap=2
len=3,cap=4
len=4,cap=4
len=5,cap=8

知识要点

数组 数组[] 的长度是固定的常量,数组不能修改长度, len和 cap 固定。
切片是不固定长度的 不需要指定固定长度 可以增加。
切片[]里边为空,[...]切片的长度不固定 可以追加。
底层引入一个数组 不能装载下 就会新引入地址 不过对切片本身来说 不变。
只要知道切片不计入长度就可以。

admin

作者并不想留下任何信息~~~~~~~~~~~哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈

留下你的评论

*评论支持代码高亮<pre class="prettyprint linenums">代码</pre>

相关推荐