任何人都可以帮我解决初学者问题吗?我写了一个函数来检查Declaration,但我不能将元素Symbol()添加到List env。我不明白这是怎么回事。
def check_decl(env: List[Symbol])(decl: Declare): Unit = decl match{
case VarDec(varName, varType)=>{
lookupForInsert(env)(varName.toString()) match {
case Some(_) => throw Redeclared(Variable,varName.toString())
case None => {
varType match{
case ArrayType(lower, upper, element)=>{
if(lower > upper) throw SizeIsNotNegative(decl)
}
case IntType=>
case RealType=>
case BoolType=>
case StringType=>
}
}
}
}
答案 0 :(得分:0)
在Scala中,默认情况下你有不可变列表,你不能“添加”它。所有将在Java中修改列表(或更类似的堆栈)的操作都将在Scala中生成 new ,修改后的列表。或者,您有可变类,如ListBuffer
,其行为更像Java列表。