Ben*_*itz 3 collections scala side-effects naming-conventions
这是在Scala 11.5 .empty中的scala.collection.mutable.Map对象中声明方法的方法:
def empty[A, B]: Map[A, B]
Run Code Online (Sandbox Code Playgroud)
这个方法不应该有空括号,像这样吗?
def empty[A, B](): Map[A, B]
Run Code Online (Sandbox Code Playgroud)
关于Scala的命名约定的页面建议,在没有明确说明的情况下,省略0-arity方法的括号是纯函数代码的约定,并且包括空括号意味着该方法具有副作用.(我想我遇到了一个更明确的错误信息.)
可变.empty方法有副作用,因为您可以区分单独调用的结果.empty.它不应该得到空括号,即使它的配偶immutable.Map没有?
关于我自己的代码,在从0-arity方法创建和返回可变对象时,我应该遵循一个特殊的命名约定吗?