Scala 元组选项

标签 scala tuples option

如果我有喜欢的 Scala 元组选项:

(Some(1), None)
(None, Some(1))
(None, None) 

并且我希望始终提取始终存在的“Some”值,否则获取 None。模式匹配的唯一方法?

最佳答案

有这个:

def oneOf[A](tup: (Option[A], Option[A])) = tup._1.orElse(tup._2)

这将返回定义的第一个选项,如果两者都不是,则返回 None 。

编辑:

表达同一件事的另一种方式是
def oneOf[A](tup:  (Option[A], Option[A])) = 
   tup match { case (first, second) => first.orElse(second) }

它更长,但可能更具可读性。

关于Scala 元组选项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43573785/

相关文章:

configuration - TCP模式选项消除延迟?

sql - Play框架忽略进化脚本

java - 为项目或项目构建创建 JAR

groovy - 将元组列表映射到 Groovy 中的第二个元素列表?

ruby - 单击下拉菜单项 - selenium ruby

scala - 链接包含选项的 scala Try 实例

scala - 在 Scala 中拦截套接字关闭上的 Akka HTTP WebSocket 事件

scala - 调度示例不工作

c# - Tuple<T1,T2>.Create<T1,T2>(T1 item1, T2 item2) 是如何实现的?

python - 迭代列表中的元组并为元组添加权重