【发布时间】:2013-05-21 09:05:27
【问题描述】:
我有:ox: Option[A] 和 oxs: Option[List[A]]。
我想:
如果两者都存在,则返回
ox.get :: oxs.get。如果
ox存在而oxs不存在,则返回List(ox.get)。如果
oxs存在而ox不存在,则返回oxs.get。如果两者都是
None,则返回List()。
我可以通过ifs 和matches 实现这一点。我只是想知道是否有任何优雅的惯用方式?
编辑:我已经测试过:List(ox.map(List(_)), oxs).flatten.flatten,它似乎适用于所有四种情况,但看起来仍然有点难以理解。
【问题讨论】:
-
你试过
flatten吗? prolly 这可能会有所帮助.. stackoverflow.com/questions/4730842/… -
@Shrey:我试过
List(ox.map(List(_)), oxs).flatten.flatten。虽然我得到的类型匹配,但它似乎太疯狂了。
标签: scala