Sobes.tech
Назад к вопросам
Junior — Middle
83

Можно ли выполнять операцию чтения данных из среза, который не был предварительно инициализирован?

Ответ от нейросети

sobes.tech AI

В Go срезы (slices) — это структуры, которые содержат указатель на массив, длину и ёмкость. Если срез не был инициализирован (то есть равен nil), попытка чтения из него приведёт к панике.

Например:

var s []int // nil-срез
fmt.Println(s[0]) // panic: runtime error: index out of range

Чтобы безопасно читать из среза, его нужно инициализировать, например, с помощью make или присвоить существующий массив:

s := make([]int, 3)
fmt.Println(s[0]) // 0, безопасно

Таким образом, читать из неинициализированного среза нельзя — это вызовет ошибку времени выполнения.