2011-12-03 12 views
5

Powiel możliwe:
What is the difference between scala self-types and trait subclasses?Skorzystanie z tego słowa kluczowego do dziedziczenia?

Od example in scalatest site. Jest jedna rzecz, zwłaszcza ja naprawdę nie rozumiem

trait FunSuiteStackBehaviors { 
        this: FunSuite => //This line 
         def a() {} 
         def b() {} 
} 

class StackFunSuite extends FunSuite with FunSuiteStackBehaviors {} 

O ile mi zrozumieć, wydaje się, że starają się przypisać pewne DEFS w cechy. Ale co robi część this: FunSuite =>? Próbowałem użyć rozszerza FunSuite zamiast jak

i wciąż kończę z tym samym wynikiem. Czy to to samo?

+0

Jest to typ własny. http://stackoverflow.com/questions/1990948/what-is-the-difference-between-scala-self-types-and-trait-subclasses http://stackoverflow.com/questions/tagged/self-type – retronym

+0

Hmm . to pytanie nie pojawia się, gdy próbuję szukać. Dziękuję za wskazanie tego. –

Odpowiedz

0

this: FunSuite => jest nazywana adnotacją typu self. Nie ma nic szczególnego w przypadku "this" Oba urywki są równoważne. Hereis dyskusja na temat jego uzasadnienia. W krótkiej adnotacji typu self pomaga oznaczać relację natura zamiast .

Powiązane problemy