Methods with empty argument listsshell
scala在没有参数的方法调用上是很是灵活的。spa
若是一个方法没有参数,你能够不用括号来定义这个方法,调用的时候必定不加括号。scala
相反的,若是你在定义无参数的方法时加上括号,方法调用时能够加括号,也能够不加括号。以下,
code
scala> object Hello{ | def say = println("hello world") | def work() = println("hello world") | } defined object Hello scala> Hello.say hello world scala> Hello.work hello world scala> Hello.work() hello world scala>
调用没有括号没有参数的方法时,若是加上括号则会出错,it
scala> Hello.say() <console>:12: error: Unit does not take parameters Hello.say()
在scala社区中约定,当方法没有参数且方法调用没有反作用时,能够省略括号。相反,当方法没有参数,但方法调用会产生反作用,一般会加上括号。console
=============END=============社区