[scala]usingをobjectで
今まで、SS本のobjectの関数として書いていたのを使ってたけど、
objectのapplyにできることに気がついた。
package asanutil object using { /** @param IO ファイルやストリームなど、close()メソッドのあるクラス @param io IOのインスタンス @param proc ioを使う処理 @param R procの戻り値の型 @return procの戻り値を返す */ def apply[IO <: {def close(): Unit}, R](io:IO)(proc:IO => R): R = try { proc(io) } finally { io.close() } }
いい感じだ。