Scala 在匿名 class 主体中使用 space 调用单参数方法
Scala call single parameter method using space in anonymous class body
在 scala 中,如何在匿名 class 的正文中使用 space 调用单个参数方法?
add "Answer3"
下面不工作
trait Question {
def add(answer:String):Unit = {
println("Received the answer=" + answer)
}
}
object Test {
val question:Question = new Question {
this add "Answer1" // working
add("Answer2") // working
add "Answer3" // NOT working, why? -> error: ';' expected but string literal found.
}
}
您正在尝试混合使用两种不同且相互冲突的便利语法选项。
instance.method(argument)
...可以表示为...
instance method argument
... 而且,如果 method()
没有参数,那么它也可以用空格表示,但解析器需要一点帮助。
instance method;
在单独的轨道上,如果 instance
是 this
则可以删除。
method(argument)
但是您不能去掉括号,因为解析器试图将其解释为 instance method
但失败了。
在 scala 中,如何在匿名 class 的正文中使用 space 调用单个参数方法?
add "Answer3"
下面不工作
trait Question {
def add(answer:String):Unit = {
println("Received the answer=" + answer)
}
}
object Test {
val question:Question = new Question {
this add "Answer1" // working
add("Answer2") // working
add "Answer3" // NOT working, why? -> error: ';' expected but string literal found.
}
}
您正在尝试混合使用两种不同且相互冲突的便利语法选项。
instance.method(argument)
...可以表示为...
instance method argument
... 而且,如果 method()
没有参数,那么它也可以用空格表示,但解析器需要一点帮助。
instance method;
在单独的轨道上,如果 instance
是 this
则可以删除。
method(argument)
但是您不能去掉括号,因为解析器试图将其解释为 instance method
但失败了。