将模数运算符应用于 Scala 泛型类型 class 成员?

apply modulus operator to Scala generic type class member?

所以我有以下内容 class:

class MyClass[T] {
    var data: T = _

    def isEven: Boolean = {
        if (this.data % 2 == 0) return true
        false
    }
}

Scala 不允许我在这里取模,因为不能保证类型“T”将是数字。

所以我的问题是如何 运行 这个? 我想让 MyClass 拥有任何类型的数字数据类型,如 Int、Float、Double 等

有一个名为 Numeric 的类型 class,位于包 scala.math 中。 class 提供了一些功能,数字(如 Int、Double 等)必须具有这些功能,例如,它们可以取反,或者它们必须能够转换为 Int,以及许多其他功能,See the docs here.
所以我建议你这样做:

import scala.math.Numeric

class MyClass[T : Numeric] {
  var data: T = _
  private final val num: Numeric[T] = implicitly

  def isEven: Boolean = num.toDouble(data) % 2 == 0
}

Scala 已经为 Int、BigInt、Char、BigDecimal 等某些类型实现了 Numeric。因此,如果您使用其中一种标准类型,就没问题,但如果您打算使用您自己定义的某种类型,请考虑实施 Numeric[YourType].
另外尽量不要使用var.