
区别:1、切片是指针类型,数组是值类型;2、数组的长度是固定的,而切片不是(切片可以看成动态的数组);3、切片比数组多一个容量(cap)属性;4、切片的底层是数组。
本文 *** 作环境:windows10系统、Go 1.11.2、thinkpad t480电脑。
相关推荐:《go教程》
以下代码输出什么?如果去掉注释又输出什么?
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语言中数组和切片的区别是什么?的详细内容,
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)