Scala中如何解决‘identifier expected but integer literal found’错误?
解决变量定义时的"identifier expected but integer literal found"错误
嘿,我来帮你搞定这个括号平衡函数里的语法错误!
你遇到的这个错误,根源其实是个超容易忽略的小细节——你把赋值等号和负号紧紧连在一起写了(比如var opening_index: Int =-1)。像Kotlin这类对语法符号解析很严格的语言,会把=-当成一个非法的标识符,而不是识别成“给变量赋值为-1”,所以编译器就懵了,抛出了“期望标识符但找到整数字面量”的错误。
修复方法很简单:
把等号和负号之间加个空格,改成这样:
var opening_index: Int = -1 var closing_index: Int = -1
这样编译器就能清晰地识别出你是要给变量赋值为-1,而不是写了个奇怪的符号组合。
给你贴一段修正后的括号平衡函数的示例代码,你可以参考下:
fun checkBalancedParentheses(expression: String): Boolean { var opening_index: Int = -1 var closing_index: Int = -1 val stack = mutableListOf<Char>() for (char in expression) { when (char) { '(', '{', '[' -> stack.add(char) ')' -> if (stack.isEmpty() || stack.removeLast() != '(') return false '}' -> if (stack.isEmpty() || stack.removeLast() != '{') return false ']' -> if (stack.isEmpty() || stack.removeLast() != '[') return false } } return stack.isEmpty() }
其实这类小错误在写代码时很常见,只要注意运算符和值之间的空格规范,就能轻松避免啦!
内容的提问来源于stack exchange,提问作者ChiPlusPlus
相关产品推荐
相关产品推荐

