Книга: Программирование на языке Ruby

8.3.2. Кванторы

8.3.2. Кванторы

Кванторы any? и all? появились в версии Ruby 1.8, чтобы было проще проверять некоторые свойства набора. Оба квантора принимают в качестве параметр блок (который должен возвращать значение true или false).

Nums = [1,3,5,8,9]
# Есть ли среди чисел четные?
flag1 = nums.any? {|x| x % 2 == 0 } # true
# Все ли числа четные?
flag2 = nums.all? {|x| x % 2 == 0 } # false

Если блок не задан, то просто проверяется значение истинности каждого элемента. Иными словами, неявно добавляется блок {|x| x }.

flag1 = list.all? # list не содержит ни одного false или nil.
flag1 = list.any? # list содержит хотя бы одно истинное значение
                  # не nil и не false).

Оглавление книги


Генерация: 1.705. Запросов К БД/Cache: 3 / 0
поделиться
Вверх Вниз