"或" - Scala中的两个选项?

pat*_*rit 1 functional-programming scala scalaz scala-option

我想做这样的事情:

def or[A](x: Option[A], y: Option[A]) = x match {
 case None => y   
 case _ => x 
}
Run Code Online (Sandbox Code Playgroud)

这样做的惯用方法是什么?我能想到的最好的是Seq(x, y).flatten.headOption

Noa*_*oah 13

它已经定义为Option:

def or[A](x: Option[A], y: Option[A]) = x orElse y
Run Code Online (Sandbox Code Playgroud)