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