用于空类参数列表的Scala样式

前端之家收集整理的这篇文章主要介绍了用于空类参数列表的Scala样式前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
在创建没有类参数的对象时,我很难决定是否应该包含空括号.一个具体的例子:我正在与现有的 Java代码连接,并创建一个实现名为EventResponder的接口的对象.我应该写:

val service = new EventResponder() {
  def respond(message: String): String = {
    return ""
  }
}

要么

val service = new EventResponder {
  def respond(message: String): String = {
    return ""
  }
}

(或者,顺便说一句,还有什么我应该改变的吗?)

两者似乎都有效,据我所知,Scala风格指南对此没有任何建议.它讨论了何时为方法或arity-0包含空括号,但这种情况并不完全相同.

解决方法

您可以使用它来区分Java世界中的类(空的parens)和接口(没有parens)或Scala世界中的类(空的parens)和特征(无parens).

您也可以类似于方法,区分具有副作用的实例化(空的parens)和没有(没有parens)的实例.虽然,我想,构造函数理想情况下应该没有副作用…

您还可以区分携带状态/可变(空白的parens)的对象和不可移动的对象(无parens).虽然,然而,这与案例类冲突,这些案例类应该是不可改变的但是不鼓励在这里不使用parens ……

如果可能的话,我个人倾向于把空的括号留下.两个字符少,可读性更强.

猜你在找的Scala相关文章