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

什么()在Scala中意味着什么?

发布时间:2020-12-16 18:18:41 所属栏目:安全 来源:网络整理
导读:我找到了一个 Scala代码片段,它声明了一个方法 init并将puts()放在调用之下. 我对第5行有疑问.()在这里是什么意思? (() = { final class $anon extends MutableProjection { def init() = { super.init(); () }; ... }; new $anon()}) 这是一个完整的例子co
我找到了一个 Scala代码片段,它声明了一个方法< init>并将puts()放在调用之下.

我对第5行有疑问.()在这里是什么意思?

(() => {
  final class $anon extends MutableProjection {
    def <init>() = {
      super.<init>();
      ()
    };
    ...
  };
  new $anon()
})

这是一个完整的例子code.

解决方法

每个Scala函数都有一个返回类型.按照惯例(并且受到某些语言特性的高度鼓励),不需要返回任何内容的函数都有一个名为Unit的返回类型,它具有一个写为()的单例值.

函数体中的最后一个表达式是其返回值.那个作者使这个be()导致编译器推断出返回类型应该是Unit.但是用类型注释来做这件事会更加清楚.如果函数的返回类型是Unit,则无论函数中的最后一个语句是什么,Scala都将隐式地从函数返回().所以这

def <init>() = {
  super.<init>()
  ()
}

可以写成等价的

def <init>(): Unit = super.<init>()

(编辑:李大同)

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

    推荐文章
      热点阅读