カスタム制御構造のパラメーター リストに一時変数を作成する方法があるかどうか疑問に思っています。
基本的に、変数 i を作成し、ループ本体でのみ i にアクセスできる for ループのような制御構造を作成したいと考えています。
for(i<- 1 to 100) {
//loop body can access i here
}
//i is not visible outside
私のコードで同様のことをしたいと思います。例えば、
customControl ( myVar <- "Task1") {
computation(myVar)
}
customControl ( myVar <- "Task2") {
computation(myVar)
}
def customControl (taskId:String) ( body: => Any) = {
Futures.future {
val result = body
result match {
case Some(x) =>
logger.info("Executed successfully")
x
case _ =>
logger.error(taskId + " failed")
None
}
}
}
現時点では、カスタム コントロール構造の外側で変数を宣言することで問題を回避していますが、これはあまり洗練されていないように見えます。
val myVar = "Task1"
customControl {
computation(myVar)
}
val myVar2 = "Task2"
customControl {
computation(myVar2 )
}