You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.25 03:28:11