Golang 错误或 map 文字上的预期功能?

标签 go

刚开始学习 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 有分号,但您看不到它们,因为它们是由词法分析器自动插入的。

Semicolon insertion rules :

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/

相关文章:

file - 如何使用 go in lambda 安全地检查 S3 存储桶中是否存在文件?

go - 将 websocket 循环与 Golang 中的 channel 同步

go - Go例程中的有限循环

Golang LinkedList 删除第一个元素

error-handling - 用于抽象资源分配/解除分配的惯用 Go

go - 如何使用 "slashUrls"而不是 QueryString。 (无需订购)

string - 当 YAML 文件包含 unicode 字符(如 "a\u0000b")时,在 golang 中读取 YAML 文件

go - 如何返回我用 Gorm 的 Create() 创建的记录?

networking - Go - 检查 IP 地址是否在网络中

google-app-engine - 在 App Engine 中使用 rpc/jsonrpc