gpt4 book ai didi

空类参数列表的 Scala 风格

转载 作者:行者123 更新时间:2023-12-03 05:36:57 27 4
gpt4 key购买 nike

当创建一个没有类参数的对象时,我很难决定是否应该包含空括号。一个具体的例子:我正在与现有的 Java 代码交互,并创建一个实现名为 EventResponder 的接口(interface)的对象。我应该写:

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

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

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

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

最佳答案

您可以使用它来区分 Java 世界中的类(空括号)和接口(interface)(无括号)或 Scala 世界中的类(空括号)和特征(无括号)。

与方法类似,您还可以区分具有副作用(空括号)和没有副作用(无括号)的实例化。虽然,我想,理想情况下,构造函数应该永远不会有副作用......

您还可以区分携带状态/可变的对象(空括号)和不可变的对象(无括号)。尽管这与应该是不可变的案例类相冲突,但不鼓励在这里不使用括号...

如果可能的话,我个人倾向于保留空括号。少两个字符,更具可读性。

关于空类参数列表的 Scala 风格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7903587/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com