gpt4 book ai didi

scala - 从依赖于路径的类型 mixin 访问值

转载 作者:行者123 更新时间:2023-12-04 14:44:20 26 4
gpt4 key购买 nike

是否可以从内部特征混合访问外部特征中的值? IE。:

trait Outer {
val foo
trait Inner
}

trait InnerMixin { this: Outer#Inner =>
def bar {
// how can I access 'foo' here? smth like Outer.this.foo
}
}

谢谢

最佳答案

由于您只能在外部的一些扩展中混合您的 InnerMixin,也许您可​​以通过这种方式在外部混合中定义它

trait Outer {

val foo: Int

trait Inner
}

trait OuterMixin { this: Outer =>

trait InnerMixin { this: Inner =>
def extension = OuterMixin.this.foo
}
}

class ActualOuter extends Outer with OuterMixin {
val foo = 12
class ActualInner extends Inner with InnerMixin {

}

}

注意:大多数时候,你不需要 self 类型,你可以只做 OuterMixin extends Outer 和 InnerMixin extends Inner。

关于scala - 从依赖于路径的类型 mixin 访问值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26288708/

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