数组定义中的逗号是什么意思?

时间:2017-10-17 12:10:10

标签: go

为什么这个变量声明中有一个逗号:

// RinkebyBootnodes are the enode URLs of the P2P bootstrap nodes running on the
// Rinkeby test network.
var RinkebyBootnodes = []string{
    "enode://a24ac7c5484ef4ed0c5eb2d36620ba4e4aa13b8c84684e1b4aab0cebea2ae45cb4d375b77eab56516d34bfbd3c1a833fc51296ff084b770b94fb9028c4d25ccf@52.169.42.101:30303", // IE
    "enode://343149e4feefa15d882d9fe4ac7d88f885bd05ebb735e547f12e12080a9fa07c8014ca6fd7f373123488102fe5e34111f8509cf0b7de3f5b44339c9f25e87cb8@52.3.158.184:30303",  // INFURA
}

我说的是逗号:

30303",  // INFURA

它是字符串数组的最后一个字符,它必须去那里,否则我会收到编译错误。

在C语言中,你不能在大括号{}结尾处使用逗号,但是你必须这样做。为什么?这个逗号是什么意思?

1 个答案:

答案 0 :(得分:1)

逗号是一个元素分割器。元素可以像连续一样写在列中:

{1, 2, 3}


{
 1,
 2,
 3,
 }

在最后一个元素之后,显而易见的逗号是不必要的。有些语言需要像C一样缺席,有些语言像Go一样存在,有些语言允许像Python这样的变种。有时它会导致旧的Internet Explorer中的JavaScript等错误。

为什么地鼠决定保留这个逗号? Go的一个关键原则是视觉简洁性和可读性。这样所有字符串看起来都是一样的。用眼睛读它们会更容易。另外假设你再添加一行 - 你必须编辑前一行。这会在差异中产生视觉噪音。

同样地想到你的想法逗号不应该在一个内容中。因为破坏可读性作为额外的符号。