2017-10-17 14 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:// 34848848/how-to-break-a-long-line-of-code-in-golang/34848928#34848928); [mgoでGoのMongoDB、bson.M/bson.Dの演算子に構文エラーがあります](https://stackoverflow.com/questions/42554759/mongodb-in-go-with-mgo-operators-with-bson -m-bson-d-always-got-syntax-error/42554846#42554846)。 – icza

+1

これは言語仕様によって規定されています。 – Volker

答えて

1

カンマは要素スプリッタです。要素は列のように一行に書くことができます。

{1, 2, 3} 


{ 
1, 
2, 
3, 
} 

最後の要素の後にはカンマが必要でないことは明らかです。いくつかの言語は、Cのような不在を必要とします.Goのような存在、Pythonのような両方の変種を許すものがあります。時々、古いInternet ExplorerのJavaScriptのようなバグが発生することがあります。

なぜgophersはこのカンマを保持することにしますか? Goの重要な原則の1つは、視覚的なシンプルさと可読性です。このようにして、すべての文字列が同じように見えます。目で読むのは簡単です。また、もう1行追加するとします。前の行を編集する必要があります。これはdiffで視覚的なノイズを作り出します。

考えてみると、カンマは1つのライナーにはないはずです。ため、余分なシンボルとして読みやすさを台無しにする。

関連する問題