我有一个代码
object App {
def main(args: Array[String]) = print {CL().f()()()}
}
case class CL() {
def f()()() = 1
}
Run Code Online (Sandbox Code Playgroud)
你可以看到一个方法调用f()()()
.但是如果我执行f()
它会返回相同的结果.
那么在f()()()
和f()
Scala之间有什么区别?
Ben*_*ich 10
在Scala中,方法可以有多个参数列表:
def f(x: Int)(y: Int, z: String)(w: Boolean) = "foo"
f(1)(2, "bar")(true) //returns "foo"
Run Code Online (Sandbox Code Playgroud)
由于多种原因,多个参数列表很有用.您可以在这个问题上阅读更多相关信息.
同样在Scala中,可以选择省略空参数列表:
def f() = "foo"
f //returns "foo"
Run Code Online (Sandbox Code Playgroud)
使用空参数列表的选择通常受约定的约束,如本问题中所述.
因此,如果您有多个空参数列表,则可以省略其中任何一个:
def f()()() = "foo"
f()()() //returns "foo"
f()() //returns "foo"
f() //returns "foo"
f //returns "foo"
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
1321 次 |
最近记录: |