刚开始学习 Go,我需要字符串映射,我按字面意思初始化。
mapa := map[string]string{
"jedan":"one",
"dva":"two"
}
但编译器提示 语法错误:复合文字中的换行符之前需要尾随逗号
所以我必须在 "two",
之后添加逗号或删除一个新行并在最后一个值之后添加 }
以使编译器满意
这是代码风格的预期行为吗?
编辑:明确以下将编译和工作
mapa := map[string]string{
"jedan":"one",
"dva":"two" }
go 版本 go1.4.2 darwin/amd64
Mac OSX 10.9.5
最佳答案
Go 有分号,但您看不到它们,因为它们是由词法分析器自动插入的。
a semicolon is automatically inserted into the token stream at the end of a non-blank line if the line's final token is
- an integer, floating-point, imaginary, rune, or string literal
所以这个:
mapa := map[string]string{
"jedan": "one",
"dva": "two"
}
其实是:
mapa := map[string]string{
"jedan": "one",
"dva": "two"; // <- semicolon
}
这是无效的 Go。
关于Golang 错误或 map 文字上的预期功能?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29300607/