Back to questions
Газпром
Junior — Middle
85
Какие действия допустимы при работе с слайсом в Go, если он не был явно инициализирован?
Companies where asked
Ecom.tech
Answer from AI
sobes.tech AI
В Go, если слайс не был явно инициализирован (то есть имеет значение nil), с ним можно выполнять следующие действия:
- Проверять на
nil(например,if slice == nil), что полезно для определения, был ли слайс инициализирован. - Получать длину и ёмкость с помощью
len(slice)иcap(slice). Дляnil-слайса длина и ёмкость равны 0. - Использовать оператор
appendдля добавления элементов. При этомappendавтоматически создаст новый слайс с выделенной памятью, если исходный слайсnil.
Однако нельзя обращаться к элементам слайса по индексу, если он nil или пуст, так как это вызовет панику.
Пример:
var s []int // s == nil
fmt.Println(s == nil) // true
fmt.Println(len(s)) // 0
s = append(s, 1) // теперь s инициализирован и содержит [1]