1

我对 Scala 推荐的使用等号Unit方法的风格有点困惑,推荐哪一种?

 def withPrintWriter(file: File, op: PrintWriter => Unit) {
  val writer = new PrintWriter(file)
    try {
     op(writer)
    } finally {
     writer.close()
    }
 }

或者

 def withPrintWriter(file: File, op: PrintWriter => Unit) = {
  val writer = new PrintWriter(file)
    try {
     op(writer)
    } finally {
     writer.close()
    }
 }
4

2 回答 2

3

过道两边都有强烈的意见,除了“以你的眼睛更容易的方式”之外,没有基于认知科学的选择风格的答案。

通常,有人会说一种风格突然出现在他们面前并说:“我不返回任何有用的东西。”

但是,有一张弃用过程语法的票。

当然,在票证已打开或 Odersky 认为该功能将来会被弃用的事实并不是确定的。

可能,争论演变成:如果我定义一个过程,我是否应该总是指定Unit结果类型?答案可能是肯定的。通常,您要避免推断无用的事物。

但是一直添加不是很麻烦: Unit吗?是的,因为程序应该像疼痛的拇指一样突出。当你只有一把锤子时,你总是会感到拇指酸痛。

于 2013-09-09T03:29:48.303 回答
0

是的,当然,最初它有点令人困惑。我更喜欢使用拇指规则

如果您从方法返回值,您可以将返回值分配给其他资源 - 因此使用“=”

如果你没有返回任何值,你可能只是在计算/存储一些东西或打印一些东西——因此忘记“=”。

于 2013-09-10T08:31:44.950 回答