gpt4 book ai didi

Scala 类型边界

转载 作者:行者123 更新时间:2023-12-04 19:51:15 25 4
gpt4 key购买 nike

下面的代码有什么问题?我在指示的行上收到来自编译器的以下投诉:类型参数 [Asset] 不符合 trait Worker 的类型参数范围 [T <: br.可行]

怎么会这样? Worker 期望 Doable 的子类型,而 asset 扩展 Doable。

trait Doable

trait Worker[T<:Doable] {
def hey():String
}

case class Asset() extends Doable

case class Hey[Asset] extends Worker[Asset] { // << error here
def hey() = "You!"
}

最佳答案

当你声明case class Hey[Asset]时,你绑定(bind)了一个新的类型变量Asset,你没有引用case class Asset() extends Doable (您正在隐藏 Asset 类型变量)。您的代码相当于:

  case class Hey[A] extends Worker[A] {
...
}

这显然行不通。

关于Scala 类型边界,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20842622/

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