Как сделать Zero Value слайс

«Как сделать Zero Value слайс» — вопрос из категории Golang, который задают на 23% собеседований Golang Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

В Go слайс имеет zero value nil. Это означает, что он не инициализирован и не ссылается на массив.

Пример:

var s []int // s == nil
fmt.Println(s == nil) // true

Чтобы создать пустой (но не nil) слайс, можно использовать:

s := []int{} // s != nil, но len(s) == 0

Разница в поведении:

  • nil слайс можно безопасно использовать в функциях типа len(), cap(), append()
  • json.Marshal(nilSlice) → null, а json.Marshal(emptySlice) → []

Лучшая практика — возвращать nil для слайсов в функциях, если нет элементов, а не пустой слайс.