當我試圖在斯卡拉在馬丁·奧德斯基的編程抽象類型的動物/食品例, 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 =