Ich möchte eine Funktion in Go schreiben, um ein Dokument in eine Sammlung in einer MongoDB-Datenbank einzufügen. Welche Art der Benennung der Funktion ist besser?
writeToMongoDB
oderWriteToMongoD
?
Das zweite ist CamelCase, während ich jemanden gesehen habe, der den Stil des ersten verwendet, daher bin ich mir nicht sicher, welches besser geeignet ist. Vielen Dank.
packageA
, kann Datei B überpackageA.WriteToMongoD
( Paket A ist als Qualifizierer erforderlich) auf die Funktion zugreifen.Antworten:
Syntax
In Go ist dies keine Frage des Stils, sondern der Syntax.
Exportierte Namen (dh Bezeichner, die aus einem anderen Paket als dem, in dem sie definiert sind, verwendet werden können) beginnen mit einem Großbuchstaben. Wenn Ihre Methode Teil Ihrer öffentlichen API ist, sollte sie wie folgt geschrieben werden:
WriteToDB
Wenn es sich jedoch um eine interne Hilfsmethode handelt, sollte Folgendes geschrieben werden:
writeToDB
Der Vorteil der es auf diese Weise tun Keywords über mit exportedness (zu definieren
extern
,public
usw.) ist , dass es ein Teil des Namens , sicher machen , die überall eine Kennung verwendet wird , kann Ihnen sagen , wenn es exportiert wird oder nicht , ohne dort zu finden, die wurde definiert (um zu sehen, ob die Definition ein Schlüsselwort enthält).Siehe auch: Exportierte Kennungen aus der Spezifikation.
i18n
Da Go UTF-8-codiert ist und alle Unicode-Zeichen mit der Buchstaben- oder Zahleneigenschaft in Bezeichnernamen unterstützt, können einige Personen in Gebietsschemas, die kein Fallkonzept haben, Probleme beim Erstellen exportierter Methoden haben (die Standardeinstellung ist nicht exportiert). In diesem Fall (Wortspiel beabsichtigt) wird den Bezeichnern häufig ein Präfix vorangestellt
X
, um die Exportiertheit anzuzeigen. Zum Beispiel:X日本語
Siehe auch: Was ist mit Unicode-Kennungen los? aus den FAQ.
Stil
Was den allgemeinen Stil betrifft, ist es immer, Kamelkoffer zu verwenden (mit Ausnahme des ersten Buchstabens, wie bereits erwähnt). Dies umfasst Konstanten, Funktionen und andere Bezeichner. So könnte beispielsweise eine Liste von (exportierten) Konstanten folgendermaßen aussehen:
const ( StateConnected = iota StateError StateDone internalStateMask = 0x2 )
Darüber hinaus werden Abkürzungen immer mit demselben Fall geschrieben, sodass Sie eine der folgenden Angaben schreiben würden:
anstelle von
writeDb
oderDbWrite
.quelle
In Go ist es üblich, gemischte Kappen zu verwenden. Aus den Dokumenten: https://golang.org/doc/effective_go.html#mixed-caps
Beachten Sie, dass Namen auf Dateiebene, die mit Großbuchstaben beginnen, auf Paketebene exportiert werden: https://golang.org/doc/effective_go.html#Getters
Es ist auch üblich, Akronyme auf alle Großbuchstaben zu schreiben. Also unten ist in Ordnung:
writeToMongoDB // unexported, only visible within the package
oder
WriteToMongoDB // exported
Und nicht:
quelle
Namen
Paketnamen
Getters
owner := obj.Owner() if owner != user { obj.SetOwner(user) }
Schnittstellennamen
MixedCaps
ref: Effektiv gehen
quelle
In Golang wird jede Variable (oder Funktion) mit einem Bezeichner, der mit einem Großbuchstaben beginnt (z. B. CamelCase), für alle anderen Pakete in Ihrem Programm öffentlich (zugänglich) gemacht, während diejenigen, die mit einem Kleinbuchstaben beginnen (Beispiel) , camelCase) ist für kein Paket zugänglich, außer für das, in dem es deklariert wird.
Sie sollten CamelCase verwenden, wenn Sie die Variable (oder Funktion) in einem anderen Paket verwenden möchten, oder Sie können sicher bei camelCase bleiben.
quelle