Ruby のブロックつき open のように勝手に後始末をしてくれる open メソッドを Scala で実装することを考えて見ます。これを素直に書けばこうなります。 import java.io.FileOutputStream object DisposableFile1 { def openOut(path: String)(block: FileOutputStream => Unit) { val out = new FileOutputStream(path) try { block(out) } finally { out.close() // Console.println("closed") } } } これはこのようにして使えます。 scala> import DisposableFile1._ import DisposableFile1._ scala> openO