Ответ 1
Метод forall
принимает функцию p
, которая возвращает логическое значение. Семантика forall
говорит: return true
, если для каждого x
в коллекции, p(x)
истинно.
Итак:
List(1,2,3).forall(x => x < 3)
означает: true
, если 1, 2 и 3 меньше 3, false
в противном случае. В этом случае он будет оцениваться до false
, так как это не так, все элементы меньше 3: 3 не меньше 3.
Существует аналогичный метод exists
, который возвращает true
, если в коллекции есть хотя бы один элемент x
, так что p(x)
является истинным.
Итак:
List(1,2,3).exists(x => x < 3)
означает: true
, если хотя бы один из 1, 2 и 3 меньше 3, false
в противном случае. В этом случае он будет оцениваться как true
, поскольку в этом случае некоторый элемент меньше 3: например. 1 меньше 3.