我要做到这一点,参数是懒惰的,可重复的:斯卡拉的名字重复参数
def f(actions: (=> Try[String])*) = {
actions.map{x =>
if(x.isFailure) throw new Exception()
...
}
}
所以,我可以用这个评估参数:
f(Try("a"), Try("b"), Try[String](new Exception()), Try({print("something"); "d"}))
打印(“东西” )永远不会被执行,因为参数是懒惰的。
而不是:
def f(actions: (() => Try[String])*) = ???
f(() => Try("a"),() => Try("b"),() => Try[String](new Exception()),() => Try({print("something"); "d"}))
它只是书写感觉无聊。
斯卡拉是否支持第一个?
也许是目前唯一的解决方案。但我认为如果语言支持它可能会更好。 – LoranceChen