gpt4 book ai didi

scala - 强制特征实现方法

转载 作者:行者123 更新时间:2023-12-04 21:17:31 24 4
gpt4 key购买 nike

我有一个特质 I (中介),一类M (混合器)混合特征和特征S (具体的)。

class M extends Something with S {
def baz() = foo()
}

trait I {
def foo(): { ...; bar(); ... }
def bar()
}

trait S extends I {
def bar() = 42
}
I用作 M 之间的中间层和 S ,提供通用接口(interface)。

我有一个实现的方法 fooI调用方法 bar (未在 I 中实现,但在那里定义)。我想要实现的是所有特征扩展 I 必须实现 bar ,因此这将引发编译时错误,因为 bar未实现:
trait Z extends I

这在 Scala 中可行吗?

P.S.:我知道 Force Scala trait to implement a certain method 的答案但我不想要那种显式的耦合。

最佳答案

我想到了结构子类型:

trait I[T<: { def:foo:Unit}]

……

那对你有用吗?

关于scala - 强制特征实现方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19513843/

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