Scala

optionに対してのメソッド(forallとexists)の動き

More than 3 years have passed since last update.

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っていう単語から考えればその通りだなという感じ。