我有几个关于单例类型的问题,但是由于它们都非常密切相关,所以我将它们发布在同一个线程下。
Q1。为什么#1 不编译而#2 编译?
def id(x: Any): x.type = x // #1
def id(x: AnyRef): x.type = x // #2
Q2。在我尝试过的其他引用类型的情况下,类型被正确推断,但在其他引用类型的情况下String
却没有。为什么呢?
scala> id("hello")
res3: String = hello
scala> id(BigInt(9))
res4: AnyRef = 9
scala> class Foo
defined class Foo
scala> id(new Foo)
res5: AnyRef = Foo@7c5c5601