Назад к вопросам
Газпромбанк
Junior — Middle
83
Какое значение хранится в срезе, если он был определён, но не создан явно при помощи инициализации?
Компании, где спрашивали
Ответ от нейросети
sobes.tech AI
Если срез (slice) в Go объявлен, но не инициализирован явно (например, var s []int), то он имеет значение nil. Такой срез не указывает на какой-либо массив и его длина и ёмкость равны нулю.
Это отличается от пустого среза, который создаётся, например, так: s := []int{} — он не равен nil, но тоже имеет длину 0.
Пример:
var s []int
fmt.Println(s == nil) // true
fmt.Println(len(s)) // 0
s = []int{}
fmt.Println(s == nil) // false
fmt.Println(len(s)) // 0
Таким образом, необъявленный явно срез хранит значение nil.