选项作为集合

Options 有一些有用的高阶函数,可以通过将选项视为具有零个或一个项目的集合来轻松理解 - 其中 None 的行为类似于空集合,而 Some(x) 的行为类似于具有单个项目的集合 x

val option: Option[String] = ???

option.map(_.trim) // None if option is None, Some(s.trim) if Some(s)
option.foreach(println) // prints the string if it exists, does nothing otherwise
option.forall(_.length > 4) // true if None or if Some(s) and s.length > 4
option.exists(_.length > 4) // true if Some(s) and s.length > 4
option.toList // returns an actual list