2015-10-07 2 views

ответ

0

Основываясь на ваших примерах вы могли бы искать для этой диаграммы

http://docs.scala-lang.org/tutorials/tour/unified-types.html

+0

'scala.Singleton' действительно существует. Каждый объект Singleton автоматически расширяет его. См. Http://www.scala-lang.org/files/archive/spec/2.11/03-types.html#singleton-types (хотя спецификация довольно расплывчата об этом). –

+0

Не знал этого, спасибо. 'val o: Singleton = SomeSingletonObject' действительно работает, хотя я не могу найти какое-либо слово« Singleton »в источниках scala, любую идею, где он определен? –

+1

Эта диаграмма, которую я знаю :) Тем не менее, в последнее время я столкнулся с Синглтоном и задавался вопросом, есть ли еще что-то, о чем я не знал. Синглтон - чисто синтетический тип, он не является расширенным признаком; скорее, o.type <: Singleton для любого объекта o, аналогично (t: T). Член <: T # Member, и он полезен именно в этом контексте. Требовав, чтобы T <: Singleton, я знаю, что два вышеупомянутых типа всегда равны, что в противном случае требовало бы синтетического литья. – Turin