Golang错误或Map文字上的预期特征?

0ve6wy6x  于 2023-11-14  发布在  Go
关注(0)|答案(3)|浏览(94)

刚开始学习Go,我需要字符串的Map,我从字面上初始化。

mapa := map[string]string{
        "jedan":"one",
        "dva":"two"
       }

字符串
但是编译器正在抱怨syntax error: need trailing comma before newline in composite literal
因此,我必须在"two",之后添加逗号或删除一个新行,并在最后一个值之后添加},以便编译器满意
这是代码风格的预期行为吗?
编辑:要明确follwing将编译和工作

mapa := map[string]string{
        "jedan":"one",
        "dva":"two"  }


Mac OSX 10.9.5

hzbexzde

hzbexzde1#

Go语言中有一个子对象,但是你看不到它们,因为它们是由lexer自动插入的。
分号插入规则:
如果行的最后一个标记是

  • 整数、浮点数、虚数、符文或字符串文字

所以这个:

mapa := map[string]string{
    "jedan": "one",
    "dva":   "two"
}

字符串
实际上是:

mapa := map[string]string{
    "jedan": "one",
    "dva":   "two";  // <- semicolon
}


这是无效的去吧。

rdlzhqv9

rdlzhqv92#

是的。你应该选择加逗号。
用这种方式编辑map/slice文字要简单得多:你可以复制粘贴,移动项目,而不用担心最后一个项目后面不应该有逗号。
事实上,你也可以在PHP、JavaScript和许多其他语言中做同样的事情。

tvz2xvvm

tvz2xvvm3#

mapa:=[]map{“jedan”:“one”,“dva”:“two”}

相关问题