[코틀린기초] 15. 코틀린 표준함수 use()

use를 사용하면 객체를 사용한 후 close() 등을 자동적으로 호출해 닫아준다.

use 내부에서 try catch finally를 이용해 자동적으로 close를 호출한다.

public inline fun <T : Closeable?, R> T.use(block: (T) -> R) : R 

 //또는

public inline fun <T : AutoCloseable?, R> T.use(block: (T) -> R): R

T의 제한된 자료형을 보면 Closealbe? 로 block은 닫힐 수 있는 객체를 지정해야 한다.
JAVA 7 이후는 AutoCloseable?로 사용된다.

파일을 읽을 때 예시

private fun readFirstLine(): String{
  BufferdReader(FileReader("test.file")).use(return it.readLine())
}