我有:ox: Option[A]和oxs: Option[List[A]].
我想要:
ox.get :: oxs.get如果两者都存在则返回.
List(ox.get)如果ox存在则返回,oxs但没有.
oxs.get如果oxs存在则返回,ox但没有.
List()两者都返回None.
我可以用ifs和matches.我只是想知道是否有任何优雅的惯用方式呢?
编辑:我已经测试过:List(ox.map(List(_)), oxs).flatten.flatten它似乎适用于所有四种情况,但它看起来仍然有点难以理解.
尝试,
ox.toList ++ oxs.toList.flatten
Run Code Online (Sandbox Code Playgroud)
如果你不介意结果是一个Iterable[Int]而不是一个List[Int]你可以放弃初始toList,
ox ++ oxs.toList.flatten
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
253 次 |
| 最近记录: |