gpt4 book ai didi

scala - 何时在 Scala 方法声明中使用等号?

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

带等号:

object HelloWorld {
def main(args: Array[String]) = {
println("Hello!")
}
}

没有等号:

object HelloWorld {
def main(args: Array[String]) {
println("Hello!")
}
}

以上两个程序的执行方式相同。在博客文章中 Things I do not like in Scala 我读到,当缺少等号时,该方法将返回 Unit (与 Java 的 void 相同),因此返回值的方法必须使用 equals符号。但是不返回值的方法可以用任何一种方式编写。

在不返回值的 Scala 方法中使用等号的最佳实践是什么?

最佳答案

我实际上非常不同意丹尼尔的观点。我认为不应该使用不等于语法。如果您的方法作为 API 公开,并且您担心意外返回错误类型,请添加显式类型注释:

object HelloWorld {
def main(args: Array[String]): Unit = {
println("Hello!")
123
}
}

不等于语法更短,可能看起来“更干净”,但我认为它只会增加混淆的可能性。有时我忘记添加等号,并相信我的方法正在返回一个值,而实际上它返回的是单位。由于非等于和等于推断类型的语法在视觉上非常相似,因此很容易忽略这个问题。

尽管这花费了我更多的工作,但当显式类型注释很重要时(即公开的接口(interface)),我更喜欢显式类型注释。

关于scala - 何时在 Scala 方法声明中使用等号?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/944111/

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