gpt4 book ai didi

Scala - 将特征与其导入混合(继承导入)

转载 作者:行者123 更新时间:2023-12-03 18:31:06 24 4
gpt4 key购买 nike

我有以下代码:

trait A {
import org.somepackage.C._
}

class B extends A {
def getValue = value
^^^^^
}

object C {
var value = 5
}

类中的值 B不可见是什么意味着类 A 的固有导入不是由 B 继承的,虽然 value在内部完全可见 A .如何实现也继承导入的效果,以便我可以避免在 trait A 的多个类中显式导入相同的东西混入?

最佳答案

不是一流实体的导入不会表现出您期望的行为。您可以改为重构您的设计以实现接近的目标:

trait A with C {

}

class B extends A {
def getValue = value // Now this will work.
}

trait C {
var value = 5
}

object C extends C

这个习惯用法在 Scalaz 6 中使用,以尽可能少的进口对用户征税。

关于Scala - 将特征与其导入混合(继承导入),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9307567/

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