У меня есть пара вопросов о типах singleton, но, поскольку они оба очень тесно связаны, я размещаю их в одной теме.
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