检查范围是否在Scala中包含值的通用方法

迈克尔·K

我想编写一个通用类,该通用类包含一个范围的端点,但是通用版本会引发编译错误: value >= is not a member of type parameter A

final case class MinMax[A <: Comparable[A]](min: A, max: A) {
  def contains[B <: Comparable[A]](v: B): Boolean = {
    (min <= v) && (max >= v)
  }
}

具体版本按预期工作:

final case class MinMax(min: Int, max: Int) {
  def contains(v: Int): Boolean = {
    (min <= v) && (max >= v)
  }
}

MinMax(1, 3).contains(2) // true
MinMax(1, 3).contains(5) // false
路易斯·米格尔·梅加·苏亚雷斯

你太近了

Scala中,我们有Ordering一个typeclass,表示可以比较相等且小于和大于的类型。

因此,您的代码可以这样编写:

// Works for any type A, as long as the compiler can prove that the exists an order for that type.
final case class MinMax[A](min: A, max: A)(implicit ord: Ordering[A]) {
  import ord._ // This is want brings into scope operators like <= & >=

  def contains(v: A): Boolean =
    (min <= v) && (max >= v)
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在excel中检查范围是否包含> 0的值

来自分类Dev

检查Excel中的行范围是否包含另一个行范围值

来自分类Dev

编写检查Scala中数字是否为0的通用方法的最佳方法

来自分类Dev

编写可在Scala中检查数字是否为0的通用方法的最佳方法

来自分类Dev

检查范围是否包含在PQexecPrepared中损坏的值(在psql中有效)

来自分类Dev

检查一行中的每个单元格范围是否包含相同的值

来自分类Dev

Mongoid范围检查数组字段是否包含值

来自分类Dev

检查列表中是否包含xpath值

来自分类Dev

检查数组是否在angularjs中包含值

来自分类Dev

检查列表中是否包含xpath值

来自分类Dev

检查输入的值中是否包含数字

来自分类Dev

检查可遍历在Scala中是否包含1个以上元素的有效方法

来自分类Dev

检查DbSet中是否存在值的通用函数

来自分类Dev

检查DbSet中是否存在值的通用函数

来自分类Dev

检查DbSet中是否存在值的通用函数

来自分类Dev

检查键是否在Excel VBA中的集合中的通用方法

来自分类Dev

检查键是否在Excel VBA中的集合中的通用方法

来自分类Dev

如何检查布尔值列表中是否包含值?

来自分类Dev

确定范围是否包含值

来自分类Dev

如何检查T是否是通用方法中的对象列表

来自分类Dev

检查字典中是否包含Swift中的值

来自分类Dev

检查Excel中范围内是否存在值

来自分类Dev

检查数字是否在Excel中是限制值(范围的端点)?

来自分类Dev

检查值是否在浮动范围的绝对序列中

来自分类Dev

检查值是否在浮动范围的分类序列中

来自分类Dev

创建一个方法来检查一个值是否存在于 Java 的通用 HashMap 中?

来自分类Dev

检查heapq是否包含值

来自分类Dev

检查列是否包含值

来自分类Dev

检查heapq是否包含值

Related 相关文章

  1. 1

    在excel中检查范围是否包含> 0的值

  2. 2

    检查Excel中的行范围是否包含另一个行范围值

  3. 3

    编写检查Scala中数字是否为0的通用方法的最佳方法

  4. 4

    编写可在Scala中检查数字是否为0的通用方法的最佳方法

  5. 5

    检查范围是否包含在PQexecPrepared中损坏的值(在psql中有效)

  6. 6

    检查一行中的每个单元格范围是否包含相同的值

  7. 7

    Mongoid范围检查数组字段是否包含值

  8. 8

    检查列表中是否包含xpath值

  9. 9

    检查数组是否在angularjs中包含值

  10. 10

    检查列表中是否包含xpath值

  11. 11

    检查输入的值中是否包含数字

  12. 12

    检查可遍历在Scala中是否包含1个以上元素的有效方法

  13. 13

    检查DbSet中是否存在值的通用函数

  14. 14

    检查DbSet中是否存在值的通用函数

  15. 15

    检查DbSet中是否存在值的通用函数

  16. 16

    检查键是否在Excel VBA中的集合中的通用方法

  17. 17

    检查键是否在Excel VBA中的集合中的通用方法

  18. 18

    如何检查布尔值列表中是否包含值?

  19. 19

    确定范围是否包含值

  20. 20

    如何检查T是否是通用方法中的对象列表

  21. 21

    检查字典中是否包含Swift中的值

  22. 22

    检查Excel中范围内是否存在值

  23. 23

    检查数字是否在Excel中是限制值(范围的端点)?

  24. 24

    检查值是否在浮动范围的绝对序列中

  25. 25

    检查值是否在浮动范围的分类序列中

  26. 26

    创建一个方法来检查一个值是否存在于 Java 的通用 HashMap 中?

  27. 27

    检查heapq是否包含值

  28. 28

    检查列是否包含值

  29. 29

    检查heapq是否包含值

热门标签

归档