当我尝试在Kotlin中编写Java try
-with-resources语句的等效代码时,没有成功。
我尝试了以下不同的变体:
try (writer = OutputStreamWriter(r.getOutputStream())) {
// ...
}
但是两者都不起作用。有人知道应该使用什么吗?
显然 Kotlin 语法 不包括 这样的结构,但也许我漏掉了什么。它将 try
块的语法定义如下:
try : "try" block catchBlock* finallyBlock?;
OutputStreamWriter
:r.outputStream.writer.use { ... }
。 - Damian Wieczorekuse
扩展的参考文档链接为:http://kotlinlang.org/docs/reference/idioms.html#java-7s-try-with-resources。 - JavaruFileOutputStream(into).use { val mergingStream = BufferedOutputStream(it).use { } }
.use
可以用于确保代码块执行完毕后自动关闭资源。在这个例子中,它确保文件输出流(FileOutputStream)和缓冲输出流(BufferedOutputStream)在完成后被正确地关闭。这种方式可以简化代码并提高可读性。 - Ponomarenko Oleh