go语言中数组和切片的区别是什么?
时间:2021-01-18 18:24
区别:1、切片是指针类型,数组是值类型;2、数组的长度是固定的,而切片不是(切片可以看成动态的数组);3、切片比数组多一个容量(cap)属性;4、切片的底层是数组。 本文操作环境:windows10系统、Go 1.11.2、thinkpad t480电脑。 相关推荐:《go教程》 以下代码输出什么?如果去掉注释又输出什么? 输出: 去掉注释提示: 说明: go语言中数组和切片的区别 ● 切片是指针类型,数组是值类型 ● 数组的长度是固定的,而切片不是(切片是动态的数组) ● 切片比数组多一个属性:容量(cap) ● 切片的底层是数组 所以,a、b定义的是数组类型,数组对比是相同的 但是,a[:]、b[:]是切片,切片之间不能进行等值判断,只能和nil判断 更多编程相关知识,请访问:编程教学!! 以上就是go语言中数组和切片的区别是什么?的详细内容,更多请关注gxlsystem.com其它相关文章!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)