Сделай все? а какой? гарантировать оценку короткого замыкания?

Тестирование некоторого кода в обоихpry а такжеirbЯ получаю следующие результаты:

[1] pry(main)> a = [1, 3, 5, 7, 0]
=> [1, 3, 5, 7, 0]
[2] pry(main)> a.any? {|obj| p obj; 3 / obj > 1}
1
=> true
[3] pry(main)> a.all? {|obj| p obj; 3 / obj > 1}
1
3
=> false

В[2] а также[3] Я вижу, что, по-видимому, существует оценка короткого замыкания, которая прерывает итерацию как можно скорее, но гарантированное ли это поведение? Читая документацию, нет упоминания об этом поведении. Я понимаю, что могу использоватьinject вместо этого, поскольку это будет перебирать все, но яЯ заинтересован в том, чтобы узнать, как выглядит официальный Ruby.

Ответы на вопрос(2)

Ваш ответ на вопрос