Проверка пустоты в Go
Пустой срез узнают по длине, равной нулю. Сравнение len с 0 работает и для nil, и для []int{}: элементов нет, цикл не выполнится ни разу.
Проверим полный и пустой срезы:
nums := []int{10, 20, 30}
fmt.Println(len(nums) == 0)
var gap []int
fmt.Println(len(gap) == 0)
Первый ответ false, второй true. Для задачи «есть ли что перебирать» достаточно длины, без отдельной проверки на nil.
Дан следующий срез:
one := []int{1}
<-show~>
Выведите, равна ли длина нулю.
Дан следующий код:
<~show~>var idle []int
Выведите, пуст ли срез.
Скажите, чем проверка длины удобнее сравнения с nil для обоих пустых видов.