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=============社區