我有以下代码(这是我的课程作业)
def balance(chars: List[Char]): Boolean = {
def innerBalance(chars: List[Char], count: Int): Boolean = {
if (chars.isEmpty) count == 0
if (chars.head == '(') innerBalance(chars.tail, count+1)
if (chars.head == ')') (count > 0) && innerBalance(chars.tail, count-1)
innerBalance(chars.tail, count)
}
innerBalance(chars, 0)
}
据我所知,这与炖菜对这种Scala 方法的回答非常相似,以编程一堆 if, 但我不知道为什么该语句
if (chars.isEmpty) count == 0
总是假的。
如果我运行这样的测试
balance("".toList)
它只是抛出异常。
谢谢你的帮助。问候,