Go语言里切片slice怎么初始化

这篇文章主要介绍“Go语言里切片slice怎么初始化”,在日常操作中,相信很多人在Go语言里切片slice怎么初始化问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Go语言里切片slice怎么初始化”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

1.切片是基于数组做的一层封装,灵活能够自动扩容。

2.切片的初始化方法

①直接创建

Go语言里切片slice怎么初始化  go语言 第1张

②基于已有的数组或切片

Go语言里切片slice怎么初始化  go语言 第2张

③使用make来创建一个切片

Go语言里切片slice怎么初始化  go语言 第3张

第一个5是切片的大小

第二个5是切片的容量

3.基本操作

①获取元素

Go语言里切片slice怎么初始化  go语言 第4张

②增加元素append

当达到底层的最大容量,切片会进行扩容,扩容的策略是翻倍扩容。

下图说明扩容之后,地址也变化了。

Go语言里切片slice怎么初始化  go语言 第5张

4.切片的修改

和数组(值传递)不一样,切片相当于是一个引用传递。

Go语言里切片slice怎么初始化  go语言 第6张

5.如果计算切片的容量?

例如:b切片的长度和容量是多少?

Go语言里切片slice怎么初始化  go语言 第7张

答案: 长度为2 容量为7

详细可以参考下面图,a、b共用底层切片,但是b是从1开始的,长度为3-1 =2,容量为a其他的底层

Go语言里切片slice怎么初始化  go语言 第8张

6.切片后面追加切片

func AppendSlice(){
     slice1 := []int{1,2,3}
     slice2 := []int{3,3,6}
 
     slice1 = append(slice1,slice2... )
 
    for _, value := range slice1 {
        fmt.Println("value的地址",value)
    }
 
}

注意一下 append(slice1,slice2... ) 这个...定义就是把slice2展开,放到slice1后面。

到此,关于“Go语言里切片slice怎么初始化”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注蜗牛博客网站,小编会继续努力为大家带来更多实用的文章!

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:niceseo99@gmail.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

评论

有免费节点资源,我们会通知你!加入纸飞机订阅群

×
天气预报查看日历分享网页手机扫码留言评论Telegram