У меня есть этот кодКак метод Array # select работает точно в рубине? И почему он возвращает пустой массив или оригинальный?
arr = [1, 2, 3].select do |n|
n + 2
puts n
end
Выход
1
2
3
и возвращаемое значение
[]
Тогда у меня есть этот код
arr = [1, 2, 3].select do |n|
n + 2
end
и возвращаемое значение
[1, 2, 3]
Так что я знаю, что массив # выберите вызывает блок прохождение в последовательных элементах из себя, возвращая массив, содержащий те элементы, для которых блок возвращает истинное значение. Как он ведет себя в этих примерах кода, чтобы я мог понять, почему он возвращает эти значения.
И почему в первом примере кода он не возвращает [nil, nil, nil]? –
Он делает подмножество вашего массива, используя только те элементы, которые возвращают правду. Элементы, которые возвращают нуль, не добавляются вообще. – msergeant
На самом деле я знаю, почему ... потому что все в рубине правдиво, кроме фальшивых и ноль? –