Scala:如何明确比较两个选项?

标签 scala option implicit

如果我有两个选项,例如

val a = Option(2)
val b = Option(1)

我可以写
List(a,b).sorted

它通过插入隐式排序来正确排序。我如何获得此订购的引用,以便我可以调用 compare(a,b)并得到结果?我想要相当于
val comparison = a.compare(b)

除非 a 和 b 是 Ordered 的实例。

最佳答案

您可以直接要求隐式排序:

Welcome to Scala version 2.10.3 (Java HotSpot(TM) 64-Bit Server VM, Java 1.7.0_21).
Type in expressions to have them evaluated.
Type :help for more information.

scala> implicitly[Ordering[Option[Int]]]
res0: Ordering[Option[Int]] = scala.math.Ordering$$anon$3@501a9177

scala> res0.compare(Some(1), Some(3))
res1: Int = -1

关于Scala:如何明确比较两个选项?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23283897/

相关文章:

php - php:onchange选项选择更新总计

Scala - 为什么在隐式列表之前声明空参数列表

scala - 使用 scala Type 设置类型参数(通过 TypeTag?)

scala - 如何在 Scala 中将命令式双 for 循环转换为函数式风格而不返回?

jquery - iScroll 中的 useTransform 和 useTransition 选项有什么作用?

Scala - 可以在方法级别应用implicitNotFound 注释吗?

scala - 将类型参数的上限交换为证据参数

java - 无法从 bouncycaSTLe 和 openssl dgst 获取匹配的 SHA1 摘要

scala - 如何向结构列添加新字段?

php - 当我们在PHP中选择ID时自动显示价格