Scala 使用=单位方法

Scala 使用=单位方法,scala,Scala,我对Scala推荐的在Unit方法中使用等号的风格有点困惑,推荐哪一种 def withPrintWriter(file: File, op: PrintWriter => Unit) { val writer = new PrintWriter(file) try { op(writer) } finally { writer.close() } } 或 走道两边都有强烈的意见,除了“哪一种对你来说更容易”之外,没有基于认知科学的答案

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

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


走道两边都有强烈的意见,除了“哪一种对你来说更容易”之外,没有基于认知科学的答案来选择一种风格

通常,有人会说,有一种风格跳出来对他们说,“我不返回任何有用的东西。”

然而,有一个问题

当然,事实上,at-ticket被打开了,或者奥德斯基认为该功能将来会遭到抨击,这并不是决定性的

争论可能会演变成:如果我定义了一个过程,我是否应该总是指定
单元
结果类型?答案可能是肯定的。通常,你要避免推断无用的东西


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

是的,当然,一开始会有点困惑。 我更喜欢用拇指尺,比如

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

如果您没有返回任何值,那么您可能只是在计算/存储某些内容或打印某些内容-因此忘记“=”

是的,答案相当完整。如果您不打算返回结果,请选择不带equal的then表示法,或者至少明确表示如果您确实想使用=,则不返回任何内容<代码>使用PrintWriter定义(文件:file,op:PrintWriter=>Unit):Unit={}
 def withPrintWriter(file: File, op: PrintWriter => Unit) = {
  val writer = new PrintWriter(file)
    try {
     op(writer)
    } finally {
     writer.close()
    }
 }