【发布时间】:2011-11-18 15:01:52
【问题描述】:
Java 7 引入了自动资源管理:
try (BufferedReader br = new BufferedReader(new FileReader(path))) {
return br.readLine();
}
这适用于任何实现java.lang.AutoClosable 的类。
我知道有几个在 Scala 中进行自动资源管理的示例,包括 Martin Odersky 演示的一个示例。
有没有计划在 Scala 中添加语言级别的资源管理,类似于 Java 的try(...) { }?
【问题讨论】:
-
我认为 [scala-language] 邮件列表更适合提出这个问题。
-
我认为如果它被添加,那么不是作为语言功能,而是作为标准库的一部分。
-
不会添加任何语言级别的功能,因为使用现有的语言功能很容易做到这一点,根据下面的答案。
-
我想我应该修改我的问题,询问是否有计划将模式添加到标准库中。它是语言还是标准库的一部分对我来说并不重要,只要它在不使用外部资源的情况下可用。编写一个包含 37 个 Maven 依赖项的 1 页实用程序似乎很愚蠢 :-)。
-
我真的应该开始使用它了。我错过了 C# 的 Disposable 模式好久了。