Junior — Middle
Welchen Wert speichert der Slice, wenn er definiert wurde, aber nicht explizit durch Initialisierung erstellt wurde?
sobes.tech KI
Antwort von 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.