gpt4 book ai didi

scala - 为什么找不到琐碎的隐式?

转载 作者:行者123 更新时间:2023-12-02 10:42:18 24 4
gpt4 key购买 nike

为什么即使在琐碎的事情中也找不到隐式内容:

class Wrapper[+A](data: Vector[A]) {
def sum[B >: A](implicit num: Numeric[B]) = data.sum
}

无法编译,除非诉诸于手动将 num传递给 data.sum

最佳答案

Scala specification(第107页)的7.2节指出implicit parameters are inferred after any type arguments are inferred。我相信这是问题所在。

Typer推断data.sum的最特定参数-A,然后在范围内查找隐式Numeric[A]。他不能用Numeric[B]代替它,因为Numeric是不变的。

关于scala - 为什么找不到琐碎的隐式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11947261/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com