当我试图在斯卡拉在马丁·奥德斯基的编程抽象类型的动物/食品例, class Food
abstract class Animal {
type SuitableFood <: Food
def eat(food:SuitableFood)
}
class Grass extends Food
class Cow extends Animal {
type Su
我想访问“静态”的成员,以实现以下目标: abstract class Super {
def typeSpecific: Int
}
class SubA extends Super {
def typeSpecific = 1
}
class SubB extends Super {
def typeSpecific = 2
}
class Tes
我的情况是这样的: trait A {
type B
def foo(b: B)
}
trait C[D <: A] {
val d: D
def createB(): D#B
def bar() {
d.foo(createB)
}
}
在REPL,它抱怨 <console>:24: error: type mi
可以说我们有一个特征,它具有一些值和一些操作。 trait Foo {
type Self <: Foo
val x: Int
def withX(x: Int): Self
}
这是使用抽象类型实现的。我们有一个绑定在Self上的类型,可以像这样实现: case class Foo1(x: Int) extends Foo {
type Self =