Scala在标准库中是否有模数?

时间:2014-05-16 22:39:31

标签: scala

我假设答案是否定的,因为我找不到它,但这不是我第一次出错。与此同时,我通常将其定义为:

implicit class IntWithMod(x: Int) {
  def mod(y: Int) = x%y+(if (x < 0) y else 0)
}

是否有一个scala库(理想情况下是标准库,外部工作,但如果它不是很大)定义了这个?如果没有,是否有一些简单的方法将其添加到所有整数类型(为每个类型手动执行此操作有点单调乏味)。

2 个答案:

答案 0 :(得分:2)

% 模数。 Scala没有您在上面编写的零或正版本。

您可以使用scala.math.Integral一般编写代码,但速度太快,以至于您不想使用它。

把它全部写出来。它应该比你提出这个问题的时间略长。

答案 1 :(得分:1)

您可以使用Java标准库模数函数:

http://docs.oracle.com/javase/8/docs/api/java/lang/Math.html#floorMod-int-int-

scala> java.lang.Math.floorMod(-7, 4)
res4: Int = 1

scala> java.lang.Math.floorMod(7, -4)
res5: Int = -1