在Scala中,是否可以调用成员方法而无需调用自身的实例?
例如,有这个类:
class Model {
def action(value : String) = {
// Do action
}
}
Run Code Online (Sandbox Code Playgroud)
这个对象实现有效:
object MyModel extends Model {
this action "doSomething"
}
Run Code Online (Sandbox Code Playgroud)
但我想做这样的事情:
object MyModel extends Model {
action "doSomething"
}
Run Code Online (Sandbox Code Playgroud)
与Java属性文件一样,因为它是定义对象状态的一种巧妙方法.
我设法为以下内容定义了一个别名this:
def declare = this
Run Code Online (Sandbox Code Playgroud)
但是在调用成员方法之前必须使用一个单词也是同样的问题.
有没有选择这样做?
是的,但你必须使用括号:
object MyModel extends Model {
action("doSomething")
}
Run Code Online (Sandbox Code Playgroud)
有关何时可以或不能省略括号的更多详细信息,请参阅此答案.
作为旁注,您还this可以使用以下别名:
object MyModel extends Model { declare =>
declare action "doSomething"
}
Run Code Online (Sandbox Code Playgroud)
如果你想引用一个类的这往往是有用的this,从内部嵌套类,这是一个有点不是写那么详细Outer.this.x,你在Java中那样.
| 归档时间: |
|
| 查看次数: |
1092 次 |
| 最近记录: |