Scalaでimplicit conversionを使ったtapの実装はScala で tap メソッドを使う - Rainy Day Codingsに書いてある。
メソッドチェーンを切らずにtapしてprintlnとかよくやるけど、今日はそれ以外の使い方を学んだ。うはは。
tapを使わない場合は気の毒で目も当てられない
import java.util.Properties
def loadProperties(path: String): Properties = {
val p = new Properties()
p.load(new FileInputStream(new File(path).getAbsolutePath))
p
}
オブジェクト作って呼び出し元に返したいが、初期化メソッドの戻り値がthisじゃないからローカル変数に一度入れてからreturnしなきゃならんっていう古いjavaライブラリによくあるケース。
tapを使うとローカル変数がいらなくなる
import java.util.Properties
def loadProperties(path: String): Properties = {
new Properties().tap( _.load(new FileInputStream(new File(path).getAbsolutePath)))
}
いいねぇ!
No comments:
Post a Comment