我有:ox: Option[A]
和oxs: Option[List[A]]
。
我想:
ox.get :: oxs.get
如果两者都存在则返回。List(ox.get)
如果ox
存在且不存在则返回oxs
。oxs.get
如果oxs
存在且不存在则返回ox
。List()
如果两者都是,则返回None
。
我可以用if
s 和matches
. 我只是想知道是否有任何优雅的惯用方式来做到这一点?
编辑:我已经测试过:List(ox.map(List(_)), oxs).flatten.flatten
它似乎适用于所有四种情况,但看起来仍然有点难以理解。