Scala方法无法解析变量

Scala方法无法解析变量,scala,Scala,我刚刚开始使用Scala,并尝试编写一个从字符列表中删除一对括号的方法 def removePairOfBrackets(chars: List[Char]): List[Char] = val firstOpeningBracket: Int = chars.indexOf('(') val firstClosingBracket: Int = chars.indexOf(')') if (firstOpeningBracket > firstClosingBracket)

我刚刚开始使用Scala,并尝试编写一个从字符列表中删除一对括号的方法

def removePairOfBrackets(chars: List[Char]): List[Char] =
  val firstOpeningBracket: Int = chars.indexOf('(')
  val firstClosingBracket: Int = chars.indexOf(')')
  if (firstOpeningBracket > firstClosingBracket) chars
  else
  chars.patch(firstOpeningBracket, Nil, 1).patch(firstClosingBracket - 1, Nil, 1)
在该方法的第二行中,我得到了以下信息:

Cannot resolve symbol chars

这个方法没有“主体”,加上花括号就固定了它

def removePairOfBrackets(chars: List[Char]): List[Char] = {
  val firstOpeningBracket: Int = chars.indexOf('(')
  val firstClosingBracket: Int = chars.indexOf(')')
  if (firstOpeningBracket > firstClosingBracket) chars
  else
    chars.patch(firstOpeningBracket, Nil, 1).patch(firstClosingBracket - 1, Nil, 1)
}
在Scala REPL中:


提示:函数的第二行实际上是一个方法,而不是一个函数,函数在Scala中是完全不同的。它只有一行。啊-花括号。我知道这很简单。非常感谢!仅供参考,这将从字面上删除找到的第一组括号,但不会正确删除匹配集,除非只有一对。例:2+3+4*5->2+3+4*5而不是2+3+4*5@RandomnessSlayer是的,请批准您的答案,这样就不会提交其他解决方案:这也是一个很好的方法。事实证明,我的代码的问题更为基本:。
Try this instead: 

  chars.mkString.replaceFirst("\\(","").replaceFirst("\\)","").toList
scala> val chars = List('a','b','(','c','(','d',')','e','(',')')
chars: List[Char] = List(a, b, (, c, (, d, ), e, (, ))

scala> chars.mkString.replaceFirst("\\(","").replaceFirst("\\)","").toList
res10: List[Char] = List(a, b, c, (, d, e, (, ))

scala>