加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

Scala:我如何访问`Numeric`类型的算术运算?

发布时间:2020-12-16 09:52:04 所属栏目:安全 来源:网络整理
导读:class Foo[T](t: T)(implicit int: Numeric[T]) { val negated = -t val doubled = t + t val squared = t * t // ...} 我在这三条线上得到了红色的波浪形.是什么赋予了? 解决方法 对于某些T,你有一个Numeric [T]的实例,这就是所有好东西的所在.所以你只需
class Foo[T](t: T)(implicit int: Numeric[T]) {
  val negated = -t
  val doubled = t + t
  val squared = t * t
  // ...
}

我在这三条线上得到了红色的波浪形.是什么赋予了?

解决方法

对于某些T,你有一个Numeric [T]的实例,这就是所有好东西的所在.所以你只需要访问你想要的方法(例如加号):

class Foo[T](t: T)(implicit int: Numeric[T]) {

  val sum = int.plus(t,t)

}

如果使用上下文绑定(“T:Numeric”语法糖),则:

class Foo[T : Numeric](t: T) {

  val sum = implicitly[Numeric[T]].plus(t,t)

}

如果要使用快捷操作符,可以只导入隐式实例的成员:

class Foo[T](t: T)(implicit int: Numeric[T]) {

  import int._
  val sum = t + t

}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读