【发布时间】:2015-09-18 00:54:09
【问题描述】:
This 是在 Scala 11.5 的 scala.collection.mutable.Map 对象中声明 .empty 方法的方式:
def empty[A, B]: Map[A, B]
这个方法不应该有空括号,像这样吗?
def empty[A, B](): Map[A, B]
Scala 的naming conventions 上的页面暗示,没有明确说明,省略 0 元方法上的括号是纯函数代码的约定,包含空括号意味着该方法有副作用。 (我想我遇到了更明确的错误消息。)
可变的.empty 方法有一个副作用,因为您可以区分单独调用.empty 的结果。它不应该得到空括号,即使它在immutable.Map 中的伴侣没有?
关于我自己的代码,在从 0-arity 方法创建和返回可变对象时是否应该遵循特殊的命名约定?
【问题讨论】:
标签: scala collections naming-conventions side-effects