的Clojure提供了一个称为doto
宏接受其参数和功能列表,基本上调用每个函数的前面加上(评估)的说法:`doto`斯卡拉
(doto (new java.util.HashMap) (.put "a" 1) (.put "b" 2))
-> {a=1, b=2}
是否有某种方式来实现的东西在斯卡拉类似?我设想的东西有以下形式:
val something =
doto(Something.getInstance) {
x()
y()
z()
}
这将等同于
val something = Something.getInstance
something.x()
something.y()
something.z()
也许它使用scala.util.DynamicVariable
S为可能吗?
注意,与工厂方法,如Something.getInstance
,则无法使用普通的斯卡拉模式
val something =
new Something {
x()
y()
z()
}
作为一个侧面说明,这个问题是一个dup。但是,我找不到原文。 –