我想知道是否有方法在自定義控制結構的參數列表中創建臨時變量。在scala中聲明自定義控制結構中的變量
從本質上講,我想創建一個控制結構,看起來有點像 for循環,我可以創建一個變量,我,並在僅循環體訪問I:
for(i<- 1 to 100) {
//loop body can access i here
}
//i is not visible outside
我會喜歡在我的代碼中做類似的事情。例如,
現在,我避開這個問題,宣佈自定義控制結構,這看起來不是很優雅的外部變量。
val myVar = "Task1"
customControl {
computation(myVar)
}
val myVar2 = "Task2"
customControl {
computation(myVar2)
}
應該可以編寫一個宏來使用無類型的宏來完成此操作。我現在沒有時間寫它,但基本思想是有一個帶有兩個參數列表的宏,它將重寫成一個塊,將綁定放置在第二個塊的開始處。我開始做一個簡單的叫做[scala-where](https://github.com/nc6/scala-where)的東西,這可能會讓你知道從哪裏開始。 – Impredicative 2013-03-20 11:40:59