Просто проверка на ноль не всегда достаточна.Иногда переменная, которую вы ожидаете, чтобы быть массивом, может быть инициализирована как объект не массив, когда есть только один.Это не часто, но частные сервисы, которые я видел, могут дать вам результат nil
, "Name1"
или ["Name1", "Name2", ...]
.Чтобы надежно обрабатывать этот диапазон ввода, я предпочитаю обращаться к своим массивам следующим образом:
Array.wrap(myArr).each { |item|
p item
}
Array.wrap
преобразует nil
в []
, Object
в [Object]
и оставьте существующие массивы в покое.Также удобно для того, чтобы не молча распаковывать ваши хэши, если они передаются вместо массива.(Вызов Array(myArr)
преобразует myArr
в массив, который уничтожает хэши, а не упаковывает их в массивы.