gpt4 book ai didi

scala - 在 Scala 中,我可以覆盖包含列表的具体字段并在子类中向其附加某些内容吗?

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

这是我拥有的类(class)的简化:

trait RequiredThings {
val requiredThings: Seq[String]
}

class SimpleCalculator with RequiredThings {
val requiredThings = List("a", "b")
}

class ComplicatedCalculator extends SimpleCalculator with RequiredThings {
self: SimpleCalculator =>
override val requiredThings:List[String] = List("c") ::: self.requiredThings
}

在这个版本中,我使用了 self-type 注释,但我并不完全肯定这是要走的路。我想我可以通过转换 requiredThings 来让它工作整个方法,但我想尝试将其作为一个领域。

最终解决方案:
trait RequiredThings {
def requiredThings: Seq[String]
}

class SimpleCalculator with RequiredThings {
def requiredThings = List("a", "b")
}

class ComplicatedCalculator extends SimpleCalculator with RequiredThings {
override def requiredThings:List[String] = List("c") ::: super.requiredThings
}

最佳答案

是的,对通过 self 类型“继承”的方法的 super 调用尚未实现。这将很快改变(有点)。同时,您应该改用继承。

关于scala - 在 Scala 中,我可以覆盖包含列表的具体字段并在子类中向其附加某些内容吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2423658/

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