Ответ 1
В дополнение к fabriziom answer вы можете увидеть больше примеров на странице Go Slices: использование и внутренние параметры ", где упоминается использование для []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
slice p int[]
достаточно в качестве фрагмента для добавления.