爲什麼使用綁定到類值參數的類型成員會生成「類型不匹配」錯誤?例如: scala> class A { type t }
defined class A
scala> class B(val a: A)
defined class B
scala> val aInt = new A { type t = Int }
aInt: A{type t = Int} = [email prot
我的情況是這樣的: 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
class EG {
private[this] type TypeMember = A
private[this] var field: Int = 0
}
可以像字段一樣爲類型成員指定訪問修飾符。在OOP的情況下,我們很清楚,領域的encapsulation確實提供了有益於防止意外共享狀態和限制狀態修改的好處。就我所知,類型成員只能在Scala中找到,而且在很多地方,
這行之有效 class MyClass[T<: Actor: ClassTag] extends Actor {
//....
}
但這並不適當做以下No ClassTag available for MyClass.this.T class MyClass extends Actor {
type T<: Actor
//...
}
即使錯誤: clas
給定一個類型別名內建立類型成員範圍: trait Record {
type ID
val id: ID
}
trait DataSource {
type ID
def read(id: ID): Try[R]
}
我希望能夠一般性地描述了read功能。 type Reader[R <: Record, DS <: DataSource] =