例如,我想将一个函数f: (Int,Int) => Int
应用于 type 的两个元素Option[Int]
。我的想法类似于 (a,b).zipped.map(f),但这会产生一个列表,我想得到一个新的 Option[Int] 作为结果。
scala> def f(a:Int,b:Int) = a*b
f: (a: Int, b: Int)Int
scala> val x = Some(42)
x: Some[Int] = Some(42)
scala> val y:Option[Int] = None
y: Option[Int] = None
scala> (x,y).zipped.map(f)//I want None as a result here
res7: Iterable[Int] = List()
如果没有显式分支,如何做到这一点?