2015-02-25 3 views
2

Я нашел использование в примерах Scala следующих примеров, но я не могу найти правильную ссылку (вероятно, потому, что Google путается new и with, которые являются очень распространенными словами ...):Использование новых и черт в Scala

var someInstance = new Class with SomeTrait 

в основной документации о черт я не мог найти что-нибудь ...

+0

См. [Соединения типов] (http://docs.scala-lang.org/tutorials/tour/compound-types.html) – Jesper

ответ

1

Ну ... его способ создания экземпляров анонимного класса.

Так,

trait A 

trait B 

class C extends A 

val cb = new C with B 
// creates an instance of anonymous class 'C with B' 

такой же, как,

trait A 

trait B 

class C extends A 

class D extends C with B 

val d = new D 
// creates an instance of class 'D' 

Теперь cb и d оба будут иметь одинаковые свойства.

+0

Вы имели в виду класс D extends C with B? –

+0

Я вижу, это просто расширение C без {}. Я прихожу с Java, и иногда меня путают такие короткие руки – gotch4

Смежные вопросы