Sobes.tech
Junior — Middle

Um slice nil é igual a um slice que não foi explicitamente inicializado?

sobes.tech IA

Resposta da IA

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

Пример:

var a []int       // неинициализированный слайс
var b []int = nil  // nil-слайс

fmt.Println(a == nil) // true
fmt.Println(b == nil) // true
fmt.Println(len(a))   // 0
fmt.Println(len(b))   // 0

Таким образом, nil-слайс и неинициализированный слайс в Go — это одно и то же: они не указывают на массив и имеют длину 0.