У меня есть программа, в которой я собираюсь сделать много-много срезов, некоторые из которых могут быть пустыми:
nb := something() // something might return 0
slices = append(slices, make([]int, nb))
Выделяет ли make([]int, 0)
некоторую память и, таким образом, менее эффективно использует память, чем срез nil
, хотя они имеют одинаковое поведение? На сколько?
Если да, то стоит ли делать тест, чтобы избежать бесполезных выделений, или затраты процессорного времени на тест не стоят экономии в памяти (или по какой-либо другой причине не делать этого)?
var sl slice
nb := something()
if nb > 0 {
sl = make([]int, nb)
}
slices = append(slices, sl)