Possible Duplicate:
What is the difference between scala self-types and trait subclasses?
From example in scalatest site. There is one particular thing I don't really understand
trait FunSuiteStackBehaviors { 
                   this: FunSuite => //This line
                         def a() {}
                         def b() {}
}
class StackFunSuite extends FunSuite with FunSuiteStackBehaviors {}
As far as I understand, it seems like they try to assign some defs into a trait. But what does this: FunSuite => part do ? I tried to use extends FunSuite instead like 
trait FunSuiteStackBehaviors extends FunSuite { 
                         def a() {}
                         def b() {}
}
class StackFunSuite extends FunSuite with FunSuiteStackBehaviors {}
and I still end up with same result. Are they the same thing ?
the this: => XXXX is called a self type annotation http://www.scala-lang.org/node/124 Basically, you're specifying the type of "this" (current object) to the type specified. Kind of a "cast from the inside"
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With