Може ли да се изпълни цикъл върху масив или списък, който е обявен без параметри?
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)
}
Така може да се изпълнява цикъл по масив или срез, ако типът и дължината (за масива) са известни. Обявяване без параметри е невъзможно.