我在scala中有以下代码无法正常工作:
var tacTable : List[List[TACList]] = List(List())
def gen(p: Program) = {
for (i <- 0 to p.classes.length){
for (j <- 0 to p.classes(i).methods.length){
var tacInstr = new TACList()
tacTable(i)(j) = tacInstr //error: application does not take parameters
}
}
}
显然,这与以下事实有关:我正在使用j访问列表,并且j用于...这如何解决呢?
为了方便起见,您可以使用另一个给出相同错误的示例:
var l : List[List[Int]] = List(List(1,2),List(3,4))
for (i <- 0 to l.length) {
for (j <- 0 to l.length) {
l(i)(j) = 8
}
}
列表是不可变的。尝试以下方法:
val tacTable = p.classes.map { _.methods.map { _ =>
new TACList()
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句