Почему .all? вернуть true в пустой массив?
Используя Ruby, я хочу оценить все элементы в массиве и вернуть true, если они все проходят условный тест.
Я могу сделать это, например, с помощьюarray.all? { |value| value == 2 }
Так:
> array=[2,2]
> array.all? { |value| value == 2 }
=> true
> array=[2,3]
> array.all? { |value| value == 2 }
=> false
Большой!
Но почему пустой массив проходит этот тест?
> array=[]
> array.all? { |value| value == 2 }
=> true
Разве это не должно возвращать ложь?
И если мне нужно вернуть false, как я должен изменить метод?