Golang 使用new创建slice
在 Go 语言中,new 关键字用于分配类型为 T 的零值并返回其地址,即类型为 *T 的值。对于 slice 来说,可以使用 new 来分配一个指向 slice 的指针,但是通常我们不这样做,因为 slice 是引用类型,我们更倾向于直接使用 make 函数来创建 slice。
然而,如果确实需要使用 new 来创建一个 slice 的指针,可以这样做:
1 | var s *[]int // 声明一个指向int类型slice的指针 |
但是,这样创建的 slice 是一个空的 slice,它没有任何底层数组(即 nil 的数组),并且长度和容量都是 0。如果需要一个具有特定长度和容量的 slice,应该使用 make 函数:
1 | s := make([]int, length, capacity) // 创建一个长度为 length,容量为 capacity 的int类型slice |
如果使用 new 创建了一个 slice 指针,并且想要初始化它,可以这样做:
1 | s := new([]int) |
在大多数情况下,直接使用 make 函数来创建 slice 是更常见和更简单的方法。使用 new 创建 slice 指针通常不是必要的,除非你有特定的需求,比如在函数中返回一个 slice 的指针,或者你需要在多个地方共享同一个 slice 的引用。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 Lei Qi's Blog!
评论