报告 finally 中带有 resource.close() 并可转换为 resource.use() 调用的 try-finally 块。

use() 更容易读取,且不易出错,因为无需显式 close() 调用。

示例:


  fun example() {
      val reader = File("file.txt").bufferedReader()
      try {
          reader.lineSequence().forEach(::print)
      } finally {
          reader.close()
      }
  }

应用修复和进行小规模清理后:


  fun example() {
      File("file.txt").bufferedReader().use { reader ->
          reader.lineSequence().forEach(::print)
      }
  }