Mindmap-Galerie [Gemeinschaftsarbeit] GO Grundlegende Grammatik
Grundlegende Syntax der Go-Sprache mit Codebeispielen. Fasst grundlegende Syntax, Typen, integrierte Typen, Generika usw. zusammen. Es steckt voller nützlicher Informationen, Freunde in Not sollten es schnell besorgen!
Bearbeitet um 2024-01-26 10:44:26Einhundert Jahre Einsamkeit ist das Meisterwerk von Gabriel Garcia Marquez. Die Lektüre dieses Buches beginnt mit der Klärung der Beziehungen zwischen den Figuren. Im Mittelpunkt steht die Familie Buendía, deren Wohlstand und Niedergang, interne Beziehungen und politische Kämpfe, Selbstvermischung und Wiedergeburt im Laufe von hundert Jahren erzählt werden.
Einhundert Jahre Einsamkeit ist das Meisterwerk von Gabriel Garcia Marquez. Die Lektüre dieses Buches beginnt mit der Klärung der Beziehungen zwischen den Figuren. Im Mittelpunkt steht die Familie Buendía, deren Wohlstand und Niedergang, interne Beziehungen und politische Kämpfe, Selbstvermischung und Wiedergeburt im Laufe von hundert Jahren erzählt werden.
Projektmanagement ist der Prozess der Anwendung von Fachwissen, Fähigkeiten, Werkzeugen und Methoden auf die Projektaktivitäten, so dass das Projekt die festgelegten Anforderungen und Erwartungen im Rahmen der begrenzten Ressourcen erreichen oder übertreffen kann. Dieses Diagramm bietet einen umfassenden Überblick über die 8 Komponenten des Projektmanagementprozesses und kann als generische Vorlage verwendet werden.
Einhundert Jahre Einsamkeit ist das Meisterwerk von Gabriel Garcia Marquez. Die Lektüre dieses Buches beginnt mit der Klärung der Beziehungen zwischen den Figuren. Im Mittelpunkt steht die Familie Buendía, deren Wohlstand und Niedergang, interne Beziehungen und politische Kämpfe, Selbstvermischung und Wiedergeburt im Laufe von hundert Jahren erzählt werden.
Einhundert Jahre Einsamkeit ist das Meisterwerk von Gabriel Garcia Marquez. Die Lektüre dieses Buches beginnt mit der Klärung der Beziehungen zwischen den Figuren. Im Mittelpunkt steht die Familie Buendía, deren Wohlstand und Niedergang, interne Beziehungen und politische Kämpfe, Selbstvermischung und Wiedergeburt im Laufe von hundert Jahren erzählt werden.
Projektmanagement ist der Prozess der Anwendung von Fachwissen, Fähigkeiten, Werkzeugen und Methoden auf die Projektaktivitäten, so dass das Projekt die festgelegten Anforderungen und Erwartungen im Rahmen der begrenzten Ressourcen erreichen oder übertreffen kann. Dieses Diagramm bietet einen umfassenden Überblick über die 8 Komponenten des Projektmanagementprozesses und kann als generische Vorlage verwendet werden.
Grundlegende GO-Syntax
Grundgrammatik
Hauptfunktion
Paketdeklaration
Kann vom Namensverzeichnis abweichen
Die Deklaration der Testdatei kann mit dem Suffix _test hinzugefügt werden
Die Deklarationen von .go-Dateien im selben Verzeichnis müssen konsistent sein, und die Deklarationen von Testdateien müssen ebenfalls konsistent sein.
Barrierefreiheit
Großgeschrieben bedeutet, dass außerhalb des Pakets darauf zugegriffen werden kann.
Auf Kleinbuchstaben kann nur innerhalb des Pakets zugegriffen werden
Grundtyp
int-Familie (kann positive und negative Zahlen ausdrücken)
int
Die Anzahl der von int verwendeten Bytes hängt von der CPU ab
int8
1 Byte
int16
2 Bytes
int32
4 Bytes
int64
8 Byte
Einheitenfamilie (ganze Zahl ohne Vorzeichen) (kann nur positive Zahlen ausdrücken)
uint
Wie viele Bytes von uint verwendet werden, hängt von der CPU ab
uint8
1 Byte
uint16
2 Bytes
uint32
4 Bytes
uint64
8 Byte
Float-Familie
float32
4zijie
float64
8 Byte
Zeichenfolge
Zum Spleißen
Hilfsverwendung mithilfe des Strings-Pakets
Die doppelten Anführungszeichen „“ in Println() müssen maskiert werden, sonst kommt es zu Ausgabefehlern. Beim Escapen können Sie den auszugebenden Inhalt schreiben und ihn dann in die doppelten Anführungszeichen kopieren, damit der Compiler automatisch maskieren kann
Println() kann auch Backticks verwenden, und innerhalb der Backticks können Zeilenumbrüche hinzugefügt werden.
Beim Zusammenfügen von Zeichenfolgen können Sie keine Zahlen verbinden. Sie müssen die Zahlen zuerst in Zeichenfolgen umwandeln und diese dann mit strconv.Itoa(123) in eine Zeichenfolge umwandeln.
Was Sie mit der Funktion len() erhalten, ist die Bytelänge der Zeichenfolge, nicht die Anzahl der Zeichen. Verwenden Sie utf8.RuneCountInString(), um die Anzahl der Zeichen zu ermitteln
Bytetyp
Es sind Bytes, im Wesentlichen uint8, die auch zur Darstellung von ASCII-Codes verwendet werden. Die entsprechenden Operationen befinden sich im Bytes-Paket.
[ ]Byte-Slices können in und aus Strings konvertiert werden.
var a [ ]byte = 'a' Wenn Sie einen Wert mit einfachen Anführungszeichen zuweisen, können Sie nur ein einzelnes Zeichen verwenden. Derzeit ist der ASCII-Codewert von a 97.
var a [ ]byte = "hello" kann bei Verwendung von doppelten Anführungszeichen einer Zeichenfolge zugewiesen werden
Bool-Typ
Und: (a && b)
OderOder: ( a || b)
Verneinung: (!a)
Berechnung
Das Mathematikpaket bietet weitere Hilfsanwendungen
Halten Sie den Befehl gedrückt und klicken Sie auf die Paketfunktion, um in das Paket zu springen und die entsprechenden Erklärungen anzuzeigen.
Beide Seiten der Operation müssen vom gleichen Typ sein und int64 kann nicht zusammen betrieben werden und muss vor der Operation in den gleichen Typ konvertiert werden.
Ganzzahlen und Ganzzahloperationsergebnisse sind ebenfalls Ganzzahlen. Wenn Sie genaue Werte erhalten möchten, müssen Sie diese in Gleitkommatypen konvertieren und dann berechnen.
Variable
var a int = 123
a := 123
deklarieren und zuweisen
GO-Typ-Inferenz
Kann nur für lokale Variablen verwendet werden
Konstante
const a int = 123
Sie können es selbst ohne den Typ ableiten.
Kann nicht geändert werden
Jota-Nutzung
Kontrollieren Sie die konstante Initialisierung
Verwenden Sie jedoch die mathematischen Operationen von iota, einschließlich Verschiebungsoperationen
Funktion
Definition
Schlüsselwortfunktion
Funktionsname
Ob der erste Buchstabe groß geschrieben wird, bestimmt, ob auf das Paket zugegriffen werden kann
Parameterliste
Parameter können Namen haben oder nicht.
Parameter desselben Typs, die nahe beieinander liegen, können ihre Typen gemeinsam deklarieren.
Rückgabewert
Mehrere Rückgabewerte zulassen
Der Rückgabewert kann einen Namen haben und der Gültigkeitsbereich des Namens erstreckt sich auf die gesamte Funktion
Rekursion
Eine Funktion ruft sich intern auf
Wenn die Rekursion zu tief verschachtelt ist, kann es zu einem Stapelüberlauf kommen.
Gelöst durch Erhöhen der Größe oder Ändern des Codes
Erste Schritte mit funktionalen Stilen
Funktion als Variable
Die Funktion selbst kann einer Variablen zugewiesen werden und diese Variable kann direkt einen Aufruf initiieren
lokale Funktion
Innerhalb der Funktion a können Sie eine Funktion b deklarieren. Der Gültigkeitsbereich dieser Funktion b liegt nur innerhalb der Funktion a.
Funktion als Rückgabewert
Hinweis: Es handelt sich nicht um den Rückgabewert der Funktion, sondern um den Rückgabewert der Funktion selbst, der ebenfalls eine Abschlussanwendung darstellt.
anonyme Funktion
Schließung
Interview-Highlights
Kontextfunktion
Kontext: außerhalb der Funktion definiert
Wenn ein Objekt durch einen Abschluss referenziert wird, wird es nicht durch Müll gesammelt. Die unsachgemäße Verwendung von Abschlüssen kann zu Speicherverlusten führen.
Funktionen als Typen
myFunc4 ist eigentlich eine Variable vom Typ func und ihr wird von Func3 ein Wert zugewiesen. Beachten Sie, dass nach Func3 kein () steht
unbestimmte Parameter
letzter Parameter
Entspricht der Verwendung von Slices
verschieben
Der Erste rein, der Letzte raus
Grundsätze zur Wertermittlung
Als Parameter übergeben: Wird bei der Definition bestimmt
Als Verschluss eingeführt: bestimmt bei Verwendung
Rückgabewert ändern
Es können nur benannte Rückgabewerte geändert werden
Umsetzungsprinzip
Wird kurz vor der Rückkehr der Funktion ausgeführt und heißt: verzögerter Aufruf
Funktionen mit Empfängern werden auch Methoden genannt
Kontrollstruktur
Wenn
Wenn
ansonsten
Sie können im if else-Block eine neue lokale Variable definieren
wenn sonst wenn
für
für Bereichsschleife
Wird zum Durchlaufen von Arrays, Slices und Karten verwendet
denn ich schleife
für Bedingungsschleife
switch-Anweisung
Es kann einen Standardzweig geben
Keine Notwendigkeit zu brechen
Die Kompilierung kann durch Anweisungen umgeschaltet werden
eingebaute Typen
Array
Syntax [cap]type
Initialisieren, um die Länge anzugeben
Die Länge kann nicht geändert werden
Kann direkt initialisiert werden
arr[i] Zugriffselement
Scheibe
Syntax [ ]Typ
Initialisierung
direkte Initialisierung
Initialisierung durchführen
Achten Sie auf die geschätzte Kapazität
arr[i] Zugriffselement
len erhält die Länge
cap erhält Kapazität
Unterschnitt
arr[Start:Ende]
arr[start:]
arr[:ende]
Enthält es Daten?
Probleme bei der gemeinsamen Nutzung von Subslice- und Slice-Speicher
Expansion als Kriterium nehmen
Ohne Erweiterung nutzen sie immer noch dasselbe Array.
Nach der Erweiterung handelt es sich nicht mehr um das vorherige Array.
Karte
Initialisierung
direkte Initialisierung
Initialisierung durchführen
Geschätzte Kapazität
lesen
val,ok = m[Schlüssel]
Wert
ok, gibt es den Schlüssel?
val = m[Schlüssel]
Wenn es existiert, ist es der Ausgabewert
Ist dieser nicht vorhanden, wird ein Nullwert des entsprechenden Typs ausgegeben.
len erhält die Länge
für key,val
Die Ergebnisse der Durchquerung sind unterschiedlich, die Reihenfolge ist jedoch nicht sicher.
löschen löschen
vergleichbares Konzept
Generika
func A[T any]()
Funktionsgenerika
Typ A[T beliebig] struct{}
Strukturgenerika
Typ A [T beliebige] Schnittstelle{}
Generische Schnittstelle
Typbeschränkungen
Typ
Schnittstellentyp X-Schnittstelle{}
Schnittstelle definieren
Eine Schnittstelle ist eine Abstraktion des Verhaltens
Strukturtyp X struct{}
Initialisierung
Struktur{}
&Struct{}
new(Struktur)
Feldzuweisung
Weisen Sie die Werte der Reihe nach zu
Wert nach Namen zuweisen
Selbstreferenz
Es können nur Zeiger verwendet werden
Abgeleiteter Typ Typ A B
A ist ein brandneuer Zeiger
Geben Sie den Aliastyp A = B ein
Zeiger
&Adresse abrufen
* Dereferenzierung
Methodenempfänger
Strukturempfänger
Zeigerempfänger
Verwenden Sie im Zweifelsfall Hinweise
Ententyp
Kombination
Es gibt keinen Polymorphismus in der Zusammensetzung
Eine Struktur, die auf eine Struktur verweist, ist eine Kombination
Slices können erweitert werden
Benennungsregeln
Die Großschreibung steuert die Zugänglichkeit
Kamelfall-Nomenklatur
Rückschluss auf den Unterstützungstyp
Empfohlene Nutzung