scala初心者の自分が、自分で書いていてわからなくなりそうなのでメモ。
表題の通り対象のメソッドは以下
- forall
- exists
環境は
java version 1.8.0_45
scala 2.11.7
forall
println(Some(1).forall(r => r.equals(1))) // true
println(Some(2).forall(r => r.equals(1))) // false
println(None.forall(r => r.equals(1))) // true
まぁそういうものかと言われれば、そうだが、Noneの時は式を評価せずにtrueを返すのか。
一瞬違和感あったが、自分で実装するとしたらそうなるよなぁって感じ。でもforallって名前かぁ。(うるさい
exists
println(Some(1).exists(r => r.equals(1))) // true
println(Some(2).exists(r => r.equals(1))) // false
println(None.exists(r => r.equals(1))) // false
exsitsっていう単語から考えればその通りだなという感じ。