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