在scala中,和[B>;:A](隐式数值:数值[B]):B中的A是什么

在scala中,和[B>;:A](隐式数值:数值[B]):B中的A是什么,scala,Scala,我在scalaList.sum sum[B >: A](implicit num: Numeric[B]): B 现在我明白了,它希望任何num参数都隐式转换为Numeric[B],这意味着它的类型是typeclassNumeric,但是我不明白的是,如果实现块根本没有引用它,那么A在那里做什么 返回值为B 而且实现是非常简单的 foldLeft(num.zero)(num.plus) 而且num也是Numeric[B]类型,因此如果返回值不引用A,而实现不引用A为什么需要它?它需要能

我在
scala
List.sum

sum[B >: A](implicit num: Numeric[B]): B
现在我明白了,它希望任何
num
参数都隐式转换为
Numeric[B]
,这意味着它的类型是
typeclass
Numeric
,但是我不明白的是,如果实现块根本没有引用它,那么
A
在那里做什么

返回值为
B
而且实现是非常简单的

foldLeft(num.zero)(num.plus)

而且
num
也是
Numeric[B]
类型,因此如果返回值不引用
A
,而实现不引用
A
为什么需要它?

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

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