在Scala中,是否有内置函数将Int限制在范围内?

时间:2018-10-12 19:59:44

标签: scala

在Scala中,有一种简便的方法将StateT $ (\s -> ((), s))的值限制为给定的go,这样,如果该值在Int之外,则{{ 1}}返回了吗?

我可以编写一个函数来执行此操作,如下面的测试案例所示,但是我怀疑Range类或我忽略的其他地方必须有某种方法。

Range

感谢您的时间。

2 个答案:

答案 0 :(得分:3)

恐怕没有。 Range旨在作为一个集合,而不是一个数学值,因此它提供了迭代和喜欢的方法。您的limit函数看起来不错。您还可以考虑扩展(“拉皮条”)Range类:

implicit class RangeOps(range: Range) {
  def limit(n: Int) = {
    (n max range.min) min range.max
  }
}

(0 to 10).limit(15)

答案 1 :(得分:0)

这应该将n限制在1到10之间

def limit(n: Int): n.max(1).min(10)