Объявить нарезать или кусочком?
в Golang, какая разница между var s []int
и s := make([]int, 0)
?
Я считаю, что обе работы, но какой из них лучше?
2 ответа:
кроме fabriziom ' s ответ, вы можете увидеть больше примеров на "Go ломтики: использование и внутренности", где используется для
[]int
указано:так как нулевое значение среза (
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
slicep int[]
достаточно как ломтик, чтобы добавить.