”工欲善其事,必先利其器。“—孔子《论语.录灵公》
首页 > 编程 > 为什么我在 Go 中收到“语法错误:Else 之前出现意外的分号”?

为什么我在 Go 中收到“语法错误:Else 之前出现意外的分号”?

发布于2024-11-09
浏览:183

Why Am I Getting \

Go 中 Else 之前意外的分号:详细解释

你的 Go 代码在第 21 行遇到异常错误:“syntax error:unexpected其他之前的分号或换行符。”尽管你这么说,但仔细检查发现,这一行的“else”语句之前确实有一个分号(;)。

这里的核心问题源于Go的自动分号插入规则。通常,Go 中分号是可选的;但是,编译器会自动将它们插入到某些行的末尾以保持语法完整性。一种这样的情况是当一行以右大括号“}”结束时,例如第 21 行上的“if”语句结束。

此行为对后续的“else”语句造成了障碍。在 Go 中,“else”块应与“if”语句的右大括号写在同一行。因此,编译器无法在第 21 行末尾添加分号,因为它会创建两个单独的语句,这是不正确的语法。

要解决此问题,请将“else”关键字直接放在右大括号之后第 21 行:

if subject == current_mid {
    current_topic[predicate] = append(current_topic[predicate], object)
} else {
    processTopic(current_mid, current_topic, xmlFile)
    current_topic = make(map[string][]string)
}

此修改确保“if”和“else”语句形成单个复合语句,按照 Go 语法的要求。

关于第 28 行和第 32 行的错误,它们与“main”函数范围之外的语句。在 Go 中,语句必须包含在它们所属的函数体内。要修复这些错误,请将大括号“}”内的语句包含在“main”函数体内。

最新教程 更多>

免责声明: 提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发到邮箱:[email protected] 我们会第一时间内为您处理。

Copyright© 2022 湘ICP备2022001581号-3