加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

Scala中双方括号的目的是什么?

发布时间:2020-12-16 19:15:12 所属栏目:安全 来源:网络整理
导读:我有一个代码 object App { def main(args: Array[String]) = print {CL().f()()()}}case class CL() { def f()()() = 1} 你可以看到一个方法调用f()()().但是如果我执行f()它会返回相同的结果. 那么Scala中的f()()()和f()有什么区别? 解决方法 在Scala中,
我有一个代码

object App {
  def main(args: Array[String]) = print {CL().f()()()}
}

case class CL() {
  def f()()() = 1
}

你可以看到一个方法调用f()()().但是如果我执行f()它会返回相同的结果.

那么Scala中的f()()()和f()有什么区别?

解决方法

在Scala中,方法可以有多个参数列表:

def f(x: Int)(y: Int,z: String)(w: Boolean) = "foo"
f(1)(2,"bar")(true) //returns "foo"

由于多种原因,多个参数列表很有用.你可以在this问题上阅读更多相关信息.

同样在Scala中,可以选择省略空参数列表:

def f() = "foo"
f //returns "foo"

使用空参数列表的选择通常受约定的约束,如this问题中所述.

因此,如果您有多个空参数列表,则可以省略其中任何一个:

def f()()() = "foo"
f()()() //returns "foo"
f()() //returns "foo"
f() //returns "foo"
f //returns "foo"

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读