Scala Language Specification根据§3.2.1说明:
稳定类型是单身 类型或声明的类型 特征scala.Singleton的子类型。
我在源代码,ScalaDoc和二进制jar文件中都找不到scala.Singleton
。
尝试REPL导致:
scala> class Foo extends Singleton
<console>:9: error: illegal inheritance from final trait Singleton
class Foo extends Singleton
^
<console>:9: error: illegal inheritance; superclass Any
is not a subclass of the superclass Object
of the mixin trait ScalaObject
class Foo extends Singleton
^
scala.Singelton
生活在哪里,目的是什么?
答案 0 :(得分:9)
终于找到了一些东西:
Singleton类型本质上是一个 用于存在的编码技巧 值。即
T forSome { val x: T }
变成了
[x.type := X] T forSome { type X <:T with Singleton }
来源:http://scala-programming-language.1934581.n4.nabble.com/scala-Singleton-td1940630.html