无法在Scala中向List()添加元素

时间:2012-11-05 01:29:39

标签: list scala element add

任何人都可以帮我解决初学者问题吗?我写了一个函数来检查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=>
        }             
    }
  }
}

1 个答案:

答案 0 :(得分:0)

在Scala中,默认情况下你有不可变列表,你不能“添加”它。所有将在Java中修改列表(或更类似的堆栈)的操作都将在Scala中生成 new ,修改后的列表。或者,您有可变类,如ListBuffer,其行为更像Java列表。