2011-12-31 18 views

cevap

21

ya TheClass.this.a veya TheClass içinde this için bir takma ad vermek

class TheClass { self => 
  val a = "abc" 
  val traitInstance = new TheTrait { 
  def a = self.a   
  } 
} 
+0

Bu, dış öğe bir sınıf veya özelliğe ait olduğunda çalışır. Bir fonksiyon bloğu içinde girilen bir değere atıfta bulunmayı arzularsam, kapsamdan kaçmanın bir yolu yoktur sanırım. Sadece bu değerleri yeniden adlandırın. – akauppi

+0

'self', TheClass.this'den daha iyi görünüyor. Hangisi tavsiye edilir? – Jus12

1

(çağıran self alışılmış), bir yol için Onları anonim bir sınıfa sarın ve onlara belirli bir ad verin. S.A. Tabii

val a=1 
val c = new { val a=a } // does not compile 

val s = new { val a=1 } 
val c = new { val a=s.a } // compiles :) 

da sadece hile yapacağını farklı adlar kullanılarak, ama bu bu kişiler için bir alternatiftir _ $ vb ile postfixing/önek demektir durumlar vardır.