什么()在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>() (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |