扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
小编给大家分享一下go语言中数组和切片有哪些区别,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!
成都创新互联主要从事网站设计、网站建设、网页设计、企业做网站、公司建网站等业务。立足成都服务宝鸡,十载网站建设经验,价格优惠、服务专业,欢迎来电咨询建站服务:13518219792
区别:1、切片是指针类型,数组是值类型;2、数组的长度是固定的,而切片不是(切片可以看成动态的数组);3、切片比数组多一个容量(cap)属性;4、切片的底层是数组。
以下代码输出什么?如果去掉注释又输出什么?
package main import ( "fmt" ) func main() { a := [2]int{5, 6} b := [2]int{5, 6} if a == b { fmt.Println("equal") } else { fmt.Println("not equal") } /* if a[:] == b[:] { fmt.Println("equal") } else { fmt.Println("not equal") } */ }
输出:
equal
去掉注释提示:
invalid operation: a[:] == b[:] (slice can only be compared to nil)
说明:
go语言中数组和切片的区别
● 切片是指针类型,数组是值类型
● 数组的长度是固定的,而切片不是(切片是动态的数组)
● 切片比数组多一个属性:容量(cap)
● 切片的底层是数组
所以,a、b定义的是数组类型,数组对比是相同的
但是,a[:]、b[:]是切片,切片之间不能进行等值判断,只能和nil判断
以上是“go语言中数组和切片有哪些区别”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注创新互联行业资讯频道!
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流