gpt4 book ai didi

scala - 将属性添加到类型而不是类型实例的隐式转换

转载 作者:行者123 更新时间:2023-12-02 07:25:55 25 4
gpt4 key购买 nike

我正在阅读一些较旧的 Scala 帖子以更好地理解类型类,然后我跑了跨this one这似乎很有用,但这个例子似乎已经过时了。

有人可以帮我找出正确的方法来实现 Phillipe 的意图吗?这是代码

trait Default[T] { def value : T }

implicit object DefaultInt extends Default[Int] {
def value = 42
}

implicit def listsHaveDefault[T : Default] = new Default[List[T]] {
def value = implicitly[Default[T]].value :: Nil
}

default[List[List[Int]]]

当复制/粘贴并在 REPL 中运行时,我得到这个>

    scala> default[List[List[Int]]]
<console>:18: error: not found: value default
default[List[List[Int]]]
^

最佳答案

这与 Scala 版本无关。如果你阅读 @Philippe's answer ,您会注意到 default 方法根本没有在任何地方定义。这不适用于任何 Scala 版本。

它应该看起来像这样:

def default[T: Default] = implicitly[Default[T]].value

关于scala - 将属性添加到类型而不是类型实例的隐式转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31910923/

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