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

在scala中,总和中的A是什么[B>:A](隐含的数字:数字[B]):B

发布时间:2020-12-16 18:12:40 所属栏目:安全 来源:网络整理
导读:我在 scala List.sum中看到了这个方法 sum[B : A](implicit num: Numeric[B]): B 现在我明白它期望任何num参数被隐式转换为Numeric [B],这意味着它的类型数组Numeric但是我不明白的是,如果实现块根本没有引用它,那么A在做什么. 返回值为B. 并且实施是 foldLe
我在 scala List.sum中看到了这个方法

sum[B >: A](implicit num: Numeric[B]): B

现在我明白它期望任何num参数被隐式转换为Numeric [B],这意味着它的类型数组Numeric但是我不明白的是,如果实现块根本没有引用它,那么A在做什么.

返回值为B.
并且实施是

foldLeft(num.zero)(num.plus)

和num也是Numeric [B]类型,所以如果返回值没有引用A而实现没有引用A为什么需要它?

解决方法

它需要能够对列表的内容进行操作,即As.因此,B必须是A的超类,这就是B>:A的意思.

(特别是,num.plus必须接受A参数以匹配fold的签名.)

(编辑:李大同)

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

    推荐文章
      热点阅读