在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的签名.) (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |