Clojure は、doto
引数と関数のリストを受け取り、(評価された) 引数を先頭に追加して、基本的に各関数を呼び出すというマクロを提供します。
(doto (new java.util.HashMap) (.put "a" 1) (.put "b" 2))
-> {a=1, b=2}
Scalaで同様のものを実装する方法はありますか? 次のような形を想定しています。
val something =
doto(Something.getInstance) {
x()
y()
z()
}
これはと同等になります
val something = Something.getInstance
something.x()
something.y()
something.z()
sを使用することは可能scala.util.DynamicVariable
でしょうか?
のようなファクトリ メソッドでSomething.getInstance
は、一般的な Scala パターンを使用できないことに注意してください。
val something =
new Something {
x()
y()
z()
}