Sobes.tech
Junior — Middle

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

sobes.tech AI

Отговор от 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)
}

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