可能重复:
Scala中的函数与方法Scala中
def foo = {}和def foo()= {}之间的区别是什么?
在scala我们可以定义
def foo():Unit = println ("hello")
Run Code Online (Sandbox Code Playgroud)
要么
def foo:Unit = println ("hello")
Run Code Online (Sandbox Code Playgroud)
我知道它们不一样但有什么区别,哪些应该在什么时候使用?
如果之前已经回答过,请指出我的链接.
Eug*_*ota 44
可以使用括号或不使用括号来定义0-arity的Scala方法().这用于向用户发出信号,告知该方法具有某种副作用(如打印输出或销毁数据),而不是没有副作用的方法,以后可以实现val.
请参阅Scala编程:
这种无参数的方法在Scala中很常见.相比之下,使用空括号定义的方法(例如def height():Int)称为empty-paren方法.建议的约定是在没有参数时使用无参数方法,并且该方法仅通过读取包含对象的字段来访问可变状态(特别是,它不会改变可变状态).
该公约支持统一访问原则[...]
总而言之,鼓励Scala中的样式定义不带参数且没有副作用的方法作为无参数方法,即省略空括号.另一方面,您永远不应该定义一个没有括号的副作用的方法,因为那个方法的调用看起来像一个字段选择.
| 归档时间: |
|
| 查看次数: |
10082 次 |
| 最近记录: |