Scala 在不使用';这';关键词

Scala 在不使用';这';关键词,scala,Scala,在Scala中,是否可以调用成员方法而不必调用其自身的实例 例如,拥有这个类: class Model { def action(value : String) = { // Do action } } 此对象实现工作: object MyModel extends Model { this action "doSomething" } 但我想这样做: object MyModel extends Model { action "doSomet

在Scala中,是否可以调用成员方法而不必调用其自身的实例

例如,拥有这个类:

class Model {
    def action(value : String) = {
        // Do action
    }
}
此对象实现工作:

object MyModel extends Model {
    this action "doSomething"
}
但我想这样做:

object MyModel extends Model {
    action "doSomething"
}
就像Java属性文件一样,因为它是定义对象状态的一种简洁方法

我设法为该定义了一个别名:

def declare = this
但是,同样的问题是,在调用成员方法之前必须使用单词


有这样做的选项吗?

有,但必须使用括号:

object MyModel extends Model {
    action("doSomething")
}
有关何时可以省略括号或何时不能省略括号的更多详细信息,请参见示例

作为旁注,您还可以将此别名命名为
this
,如下所示:

object MyModel extends Model { declare =>
  declare action "doSomething"
}
如果您想从嵌套类的内部引用类的
This
,这通常很有用。与在Java中编写
Outer.This.x
相比,它的详细程度要低一些