scala中this关键字用法除了用于构造辅助构造器和变量调用外,还有用于方法的返回,this放在方法最后,用于this.type的返回,示例如下:
class cal(x: Int) {
var result = x
var j:Any = x
def this(k: Int, j: Int) = {
this (k: Int)
this.result = k + j
}
def this(k: Int, j: Int, h: Int) = {
this(k : Int)
this.result = k * j - h
}
def testthis(a: Any): this.type = {
this.j = a
this
}
}
object cal {
val x1 = new cal(1,2).result //> x1 : Int = 3
val x2 = new cal(2,4,1).result //> x2 : Int = 7
val x3 = new cal(2).testthis("sdf").j //> x3 : Any = sdf
}