在Golang中,var s []int和之间有什么区别s := make([]int, 0)?
var s []int
s := make([]int, 0)
我发现这两种方法都可行,但是哪一种更好?
除了fabriziom的答案外,您还可以在“转到切片:用法和内部方法”中看到更多示例,其中[]int提到了的用法:
[]int
由于slice(nil)的零值就像 零长度的slice一样 ,您可以声明slice变量,然后在循环中附加到该变量:
nil
// Filter returns a new slice holding only // the elements of s that satisfy f() func Filter(s []int, fn func(int) bool) []int { var p []int // == nil for _, v := range s { if fn(v) { p = append(p, v) } } return p }
这意味着,要附加到切片,您不必先分配内存:nil切片p int[]足以作为要添加的切片。
p int[]