golang数组与切片的区别是什么?


本文摘自php中文网,作者青灯夜游,侵删。

golang中数组和切片的区别:

● 切片是指针类型,数组是值类型

● 数组的长度是固定的,而切片不是(切片是动态的数组)

● 切片比数组多一个属性:容量(cap)

● 切片的底层是数组

相关推荐:golang教程

既然一个是指针类型,一个是值类型,那么区别体现在哪里呢?

看下这个例子

1

2

3

4

5

6

7

8

9

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

for i, e := range numbers {

    if i == len(numbers)-1 {

        numbers[0] += e

    } else {

        numbers[i+1] += e

    }

}

fmt.Println(numbers)

结果为:

1

[22 3 6 10 15 21]

将切片换为数组:

阅读剩余部分

相关阅读 >>

awesome go!高玩gopher都会参考的go资源集合

优雅的实现 golang rest api 架构

使用viper读取nacos配置(开源)

go 语言中的一些非常规优化

golang文件复制

go-zap

修改文件夹下面所有.jpg文件名demo ->欢迎加入微信交流群一起交流学习go

安装go语言支持及gogs版本管理工具

24 goroutine channel实现并发和并行(一)

go get下载包失败问题

更多相关阅读请进入《golang》频道 >>




打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...