scala> abstract class Abstract0 { | def setOption(j: Int): this.type | } | | class Concrete0 extends Abstract0 { | var i: Int = 0 | def setOption(j: Int) = { | i = j; | this | } | } scala> (new Concrete0).setOption(1).setOption(1) res72: Concrete0 = Concrete0@a50ea1
this.type
is a singleton type - the type of one specific instantiated Abstract0In above example, setOption() returns the actual type used, rather than Abstruct0.
No comments:
Post a Comment