2017-10-17 29 views
-4

为什么会出现在这个变量声明一个逗号:数组定义中的逗号是什么意思?

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

我说的逗号是放在这里:

30303", // INFURA 

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

在C语言中,你不能在大括号{}的末尾逗号,但在旅途中,你不得不这样做。为什么?这个逗号是什么意思?

+3

例如:https://dave.cheney.net/2014/10/04/that-trailing-comma –

+0

查看相关问题:如何打破代码Golang长线?](https://开头stackoverflow.com/questions/34846848/how-to-break-a-long-line-of-code-in-golang/34848928#34848928);和[MongoDB在Go与mgo,运营商与bson.M/bson.D总是有语法错误](https://stackoverflow.com/questions/42554759/mongodb-in-go-with-mgo-operators-with-bson -m-BSON-d-总是有语法错误/ 42554846#42554846)。 – icza

+1

这是语言规范的授权。 – Volker

回答

1

逗号是一个元素分隔符。要素可以在一列在一排be.written这样:

{1, 2, 3} 


{ 
1, 
2, 
3, 
} 

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

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

思考你的想法逗号不应该在一个内衬相同。因为可读性作为额外的符号。