Sobes.tech
Back to questions
Junior — Middle
83

Можно ли выполнять цикл по массиву или списку, который был объявлен без указания параметров?

Answer from AI

sobes.tech AI

В Go массивы и срезы (slice) имеют строго определённый тип, включая тип элементов и длину (для массивов). Если массив объявлен без указания длины, например var arr []int, то это срез, а не массив. По срезу можно выполнять цикл for range без проблем.

Если же объявлен массив без указания длины, например arr := [...]int{1,2,3}, то длина выводится компилятором, и по нему тоже можно итерироваться.

Однако, если объявлен массив без указания параметров вообще, например var arr [], то это синтаксически неверно в Go — тип должен быть указан полностью.

Пример корректного цикла по срезу:

arr := []int{1, 2, 3}
for i, v := range arr {
    fmt.Println(i, v)
}

Таким образом, можно выполнять цикл по массиву или срезу, если тип и длина (для массива) известны. Объявление без параметров невозможно.