相关疑难解决方法(0)

Scala有哪些自动资源管理替代方案?

我在Web上看到了许多针对Scala的ARM(自动资源管理)示例.虽然大多数看起来很像彼此,但它似乎是一种写作的通道.不过,我确实看到了一个使用延续的非常酷的例子.

无论如何,很多代码都有这种或那种类型的缺陷,所以我认为在Stack Overflow上有一个引用是个好主意,我们可以在这里投票给出最正确和最合适的版本.

scala resource-management

100
推荐指数
6
解决办法
2万
查看次数

功能尝试和捕获与Scala

是否有更多的自动方式在Scala中打开资源并将方法应用于此方法(直接从java转换),使用__CODE__但也包括finally等.

var is: FileInputStream = null
try {
  is = new FileInputStream(in)
  func(is)
} catch {
  case e: IOException =>
    println("Error: could not open file.")
    println("       -> " + e)
    exit(1)
} finally {
  if(is) is.close()
}
Run Code Online (Sandbox Code Playgroud)

functional-programming scala

21
推荐指数
3
解决办法
2万
查看次数

Scala:一次性资源模式

Scala库中是否有任何标准化来支持可支配资源模式.我的意思是类似于C#和.NET支持的东西,只提一个.

例如,官方Scala库提供的内容如下:

trait Disposable { def dispose() }

class Resource extends Disposable

using (new Resource) { r =>

}
Run Code Online (Sandbox Code Playgroud)

注意:我知道这篇文章« Scala最终阻止关闭/刷新资源 »但它似乎没有集成在标准库中

scala disposable resource-cleanup

7
推荐指数
2
解决办法
1703
查看次数

在finally块中使用变量

这是Scala中的代码:

def write() = {
    try {
      val out = new PrintWriter(new BufferedWriter(new FileWriter(fileName, true)))
      out.println("123")
      out.close
    } catch {
      case e: IOException => {}
    }

   //finally {
     //out.close // ops, it's not visible in this context
   //}
  }
Run Code Online (Sandbox Code Playgroud)

out.closefinally块中有" " 会更好,不是吗?但我不想使用var.

我的问题是,我该如何实现这一目标?

scala

2
推荐指数
1
解决办法
1871
查看次数