Kotlin で Loan パターン (別解)
最近 Kotlin ばっかりやってます。
さて、Qiita に同じ内容の記事が出てました。
Kotlin - Kotolin で Loan パターン - Qiita http://qiita.com/deadbeef/items/862b908ac54fdd58c3df
やり始めた時に自分も作ってたので載せておこうと思います。 合わせて、疑問点も書いておきます。
package sandbox.loanpattern fun <T : Closeable, R> using(resource: T, f: (T) -> R): R { try { return f(resource) } finally { resource.close() } }
使い方
using (ByteArrayOutputStream()) { outStream -> outStream.write(...) }
ほぼ Scala と同じにかけます。
疑問
using 関数の定義を見てみると、リソースと、リソースを利用する関数の2引数を取るものとなっています。 しかし、使い方を見てみると using 関数に渡す引数 f はカッコの外に書いています。
これって言語的にはどういう機能で、リファレンスに記載のあるものでしょうか?(見つけられなかった)