首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >类扩展带有/不带Parentheses的特性。

类扩展带有/不带Parentheses的特性。
EN

Stack Overflow用户
提问于 2013-12-18 16:24:36
回答 4查看 644关注 0票数 0

看看斯卡拉深度的代码..。

代码语言:javascript
复制
scala> trait Foo {
     |  def someMethod(): Int = 5
     | }
defined trait Foo

scala> class Main() extends Foo {
     |   }
defined class Main

然后,我创建了一个新的Main (没有括号)。

代码语言:javascript
复制
scala> class Main extends Foo {}
defined class Main

class Main()中的括号是什么意思?不带括号的怎么样?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2013-12-18 16:37:32

都是一样的。如果不使用括号,则与空括号相同。

代码语言:javascript
复制
class A()
new A()
new A

class B
new B()
new B

都是一样的。

票数 3
EN

Stack Overflow用户

发布于 2013-12-18 17:23:45

5.3规范:

如果没有给出正式参数段,则假定为空参数节()。

这与方法不同,这些方法可以是无参数的。

当你写

代码语言:javascript
复制
class A

你真的在写

代码语言:javascript
复制
class A()

此外,

代码语言:javascript
复制
scala> class A(implicit i: Int)
defined class A

scala> new A
<console>:9: error: could not find implicit value for parameter i: Int
              new A
              ^

scala> new A()(1)
res1: A = A@32185a4a

scala> new A(1)
<console>:9: error: too many arguments for constructor A: ()(implicit i: Int)A
              new A(1)
              ^
票数 5
EN

Stack Overflow用户

发布于 2013-12-18 16:37:53

在类名后面的括号中,有主构造函数的参数。在这种情况下,没有参数,所以您可以省略括号。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20663293

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档