我是 Scala 和 funcprog 的新手。
我有一段代码(你们中的一些人可能认识它):
trait SwingApi {
type ValueChanged <: Event
val ValueChanged: {
def unapply(x: Event): Option[TextField]
}
...
}
我不明白 val ValueChanged: {...} 是什么。
从这篇文章中我了解到
type ValueChanged <: Event
和
val ValueChanged: {
def unapply(x: Event): Option[TextField]
}
是两个不相关的东西,因为它们位于不同的命名空间等中,而 ValueChanged类型是Event的抽象子类型。
好,然后我尝试使用 Scala 工作表:
type myString <: String
val myString: {
def myfunc(x: String): String
}
它告诉我一个错误“只有类可以有声明和未定义的成员”......这不是一个类似的结构吗?
最后,问题是:
代码的val ValueChanged部分中的ValueChanged是什么?
它真的与ValueChanged <: Event 类型无关吗
这个语法是什么意思:
val myVal:{def func{x:T}:T}
? 这里的值的名称、类型和实际值是什么?
谢谢!