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

«Можно ли итерироваться в цикле по слайсу, объявленному без параметров» — вопрос из категории Golang, который задают на 23% собеседований Golang Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Да, можно. В Go слайс без указания параметров ([]Type{}) эквивалентен пустому слайсу (nil). Итерироваться по нему безопасно — цикл просто не выполнится ни разу, так как длина равна 0.

Пример:

var s []int // nil-слайс
for i, v := range s {
    fmt.Println(i, v) // Не выполнится
}

Это работает так же, как с явно пустым слайсом:

s := []int{} // Пустой слайс (не nil)
for i, v := range s {
    fmt.Println(i, v) // Тоже не выполнится
}