我想知道是否有方法在自定义控制结构的参数列表中创建临时变量。在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