假设我有一个代码:
class C extends A#B {
override def fun(): Int = 100
}
trait A {
type B = {
def fun(): Int
}
}
编译器说:
class type required but Object{def fun(): Int} found
class C extends A#B {
^
我如何理解这个错误?
答案 0 :(得分:3)
您无法在Scala中扩展结构类型。结构类型仅表示类型必须定义的一堆方法,以便在期望结构类型的位置使用。
因此,写
就足够了class C {
def fun(): Int = 100
}
将C
类型的对象传递给B
的变量。