constの命名規則に従う


116

constGolangの名前に命名規則があるかどうかを確認しようとしています。

私は個人的にはCスタイルに従って大文字で書く傾向がありますが、このページhttp://golang.org/doc/effective_go.htmlには、言語のいくつかの命名規則が記載されているようですが、何も見つかりませんでした。


5
FOO_BAR_BAZ読みやすくするために定数をスタイルで記述したいのですが、残念ながら、定数の可視性に影響し、一般的ではありません。私は自分のプライドを飲み込み、嫌いな場合でも大会を受け入れなければなりませんでした。
byxor 2018

回答:


129

標準ライブラリはキャメルケースを使用しているので、そうすることもお勧めします。定数をエクスポートするかどうかによって、最初の文字は大文字または小文字になります。

いくつかの例:

  • md5.BlockSize
  • os.O_RDONLY POSIXから直接借用したため、例外です。
  • os.PathSeparator

7
const要素を他のパッケージに公開するかどうかを決定することも重要です。を使用する場合、UpperCamelCaseまたはALL_CAPSパッケージの外部でエクスポートする場合。このため、私lowerCamelCaseはプライベートのconst変数に固執し、Goプロジェクトに比較的近い人から(またはおそらく公式のドキュメントでさえ-この場所を忘れて)この推奨事項を読んだことを思い出します。
weberc2

79

Goコードレビューコメント

このページには、Goコードのレビュー中に行われた一般的なコメントがまとめられているため、省略形で1つの詳細な説明を参照できます。これはよくある間違いのリストであり、スタイルガイドではありません。

これはhttp://golang.org/doc/effective_go.htmlの補足として見ることができ ます

混合キャップ

http://golang.org/doc/effective_go.html#mixed-capsを参照してください。これは、他の言語の規則に違反する場合にも当てはまります。たとえば、エクスポートされない定数はmaxLengthであり、MaxLengthやMAX_LENGTHではありません。


効果的な囲碁

MixedCaps

最後に、Goの規則では、マルチワード名を書くのにアンダースコアではなくMixedCapsまたはmixedCapsを使用します。


Goプログラミング言語仕様

エクスポートされた識別子

識別子をエクスポートして、別のパッケージからの識別子へのアクセスを許可できます。次の両方の場合、識別子がエクスポートされます。

  • 識別子の名前の最初の文字はUnicodeの大文字(Unicodeクラス "Lu")です。そして

  • 識別子はパッケージブロックで宣言されているか、フィールド名またはメソッド名です。

他のすべての識別子はエクスポートされません。


混合キャップを使用してください。


12

具体的な例。定数で型を宣言すること(関連する場合)は、コンパイラに役立つ可能性があることに注意してください。

// Only visible to the local file
const localFileConstant string = "Constant Value with limited scope"

// Exportable constant
const GlobalConstant string = "Everyone can use this"
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.