Namenskonventionen für const

116

Ich versuche festzustellen, ob es eine Namenskonvention für die Namen von constin Golang gibt.

Ich persönlich würde eher dem C-Stil folgen und sie in Großbuchstaben schreiben, aber ich habe auf dieser Seite http://golang.org/doc/effective_go.html nichts gefunden, was einige Namenskonventionen für die Sprache aufzulisten scheint.

LtWorf
quelle
5
Ich würde gerne Konstanten im FOO_BAR_BAZStil für die Lesbarkeit schreiben , aber das wirkt sich leider auf die Sichtbarkeit der Konstante aus und ist nicht üblich. Ich musste nur meinen Stolz schlucken und die Konvention akzeptieren, auch wenn ich sie nicht mag.
Byxor

Antworten:

129

Die Standardbibliothek verwendet Kamelkoffer, daher rate ich Ihnen, dies auch zu tun. Der erste Buchstabe ist in Groß- oder Kleinbuchstaben geschrieben, je nachdem, ob Sie die Konstante exportieren möchten.

Einige Beispiele:

  • md5.BlockSize
  • os.O_RDONLY ist eine Ausnahme, da es direkt von POSIX ausgeliehen wurde.
  • os.PathSeparator
Rechtsfalte
quelle
7
Es ist auch wichtig zu bestimmen, ob Ihr constElement anderen Paketen ausgesetzt werden soll. Wenn Sie es verwenden UpperCamelCaseoder ALL_CAPSes außerhalb Ihres Pakets exportieren. Aus diesem Grund lowerCamelCasehalte ich mich an private const-Variablen und erinnere mich, diese Empfehlung von jemandem gelesen zu haben, der dem Go-Projekt relativ nahe steht (oder vielleicht sogar in der offiziellen Dokumentation - ich vergesse, wo).
weberc2
79

Go Code Review Kommentare

Auf dieser Seite werden häufig verwendete Kommentare gesammelt, die während der Überprüfung des Go-Codes abgegeben wurden, sodass auf eine einzelne ausführliche Erklärung durch Kurzschriften verwiesen werden kann. Dies ist eine Wäscheliste mit häufigen Fehlern, kein Styleguide.

Sie können dies als Ergänzung zu http://golang.org/doc/effective_go.html anzeigen .

Gemischte Kappen

Siehe http://golang.org/doc/effective_go.html#mixed-caps . Dies gilt auch dann, wenn Konventionen in anderen Sprachen verletzt werden. Eine nicht exportierte Konstante ist beispielsweise maxLength, nicht MaxLength oder MAX_LENGTH.


Effektiv gehen

MixedCaps

Schließlich besteht die Konvention in Go darin, MixedCaps oder MixedCaps anstelle von Unterstrichen zum Schreiben von Mehrwortnamen zu verwenden.


Die Go-Programmiersprachenspezifikation

Exportierte Bezeichner

Eine Kennung kann exportiert werden, um den Zugriff von einem anderen Paket aus zu ermöglichen. Ein Bezeichner wird exportiert, wenn beide:

  • Das erste Zeichen des Namens des Bezeichners ist ein Unicode-Großbuchstabe (Unicode-Klasse "Lu"). und

  • Der Bezeichner wird im Paketblock deklariert oder ist ein Feldname oder Methodenname.

Alle anderen Bezeichner werden nicht exportiert.


Verwenden Sie gemischte Kappen.

peterSO
quelle
12

Spezifische Beispiele. Beachten Sie, dass das Deklarieren des Typs in der Konstante (falls relevant) für den Compiler hilfreich sein kann.

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

// Exportable constant
const GlobalConstant string = "Everyone can use this"
Speedy99
quelle