Sobes.tech
Junior — Middle
112

Қиындығы анықталған, бірақ нақты инициализацияланбаған жағдайда, slice-те қандай мән сақталады?

Сұралған компаниялар
ГазпромбанкГазпромбанк

AI-дан жауап

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.