提问人:raul dangio 提问时间:8/2/2023 更新时间:8/2/2023 访问量:45
make() 和 []T{} [duplicate] 之间的区别
difference between make() and []T{} [duplicate]
问:
我正在学习 golang 中的切片,我学习如何以两种不同的方式初始化切片:
func main() {
slice1 := make([]int, 5, 10)
slice1 = append(slice1, 1, 2, 3, 4)
slice2 := []int{1, 2, 3, 4}
}
有什么区别?
我正在搜索,但一无所获,如果有人能回答,我会很高兴。
答:
1赞
Burak Serdar
8/2/2023
#1
下面创建一个长度为 5 且容量为 10 的切片(即分配一个包含 10 个元素的数组,创建一个指向该数组的切片,长度=5)。这发生在运行时,并且 slice 元素初始化为零值:
slice1 := make([]int, 5, 10)
下面创建一个 length=4 且 capacity=4 的切片
slice2 := []int{1, 2, 3, 4}
数组文字是在编译时创建的,切片是在运行时创建的,指向 len=4 和 cap=4 的数组。[]int{1,2,3,4}
评论