-
var foo []int
-
foo := []int{}
-
foo := make([]int, 0)
Как определить пустой кусок в Go?
Или, точнее, кажется, что я мог бы сделать любую из этих трех вещей. Есть ли разница между ними? Что является лучшим и почему?
Ответ 1
1) - это нулевой фрагмент.
2) и 3) являются не-нильскими срезами с нулевой длиной и нулевой емкостью.
Ни один из параметров не выделяет память.
Все опции обычно используются в коде Go.
Поскольку len
, cap
и append
работают с nil-срезами, 1) часто могут быть взаимозаменяемы с 2) и 3).