-7

有人可以帮我解决初学者的问题吗?我编写了一个函数来检查声明,但我无法将元素 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=>
        }             
    }
  }
}
4

1 回答 1

0

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

于 2012-11-05T16:03:45.400 回答