Объявить нарезать или кусочком?
в 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 }это означает, что для добавления к срезу вам не нужно выделять память во-первых:
nilslicep int[]достаточно как ломтик, чтобы добавить.