Technologieaustausch

Einführung in die Go-Sprache (1)

2024-07-12

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

Suchmechanismus für Go-Module-Abhängigkeitspakete
  • Heruntergeladene Abhängigkeiten von Drittanbietern werden in gespeichert $GOPATH/pkg/mod Runter
  • Die von go install generierte ausführbare Datei wird in gespeichert $GOPATH/binRunter
  • Abhängig von der Suchreihenfolge:
    • Arbeitsliste
    • $GOPATH/Paket/mod
    • $GOPATH/Quelle

1. Grundlagen der Go-Sprache

1.Identifikatoren und Schlüsselwörter

1.1 Benennungsmethode

Die Benennung von Go-Variablen, Konstanten, benutzerdefinierten Typen, Paketen und Funktionen muss den folgenden Regeln folgen:

Das erste Zeichen kann sein任意Unicode字符oder下划线

Andere Teile als das erste Zeichen können Unicode-Zeichen, Unterstriche oder Zahlen sein

Die Länge des Namens ist unbegrenzt

Theoretisch kann der Name chinesische Schriftzeichen oder sogar alle chinesischen Schriftzeichen enthalten, in der Praxis sollten Sie dies jedoch nicht tun.

1.2 Schlüsselwörter
brechenStandardFunktionSchnittstellewählen
FallverschiebengehenKarteStruktur
chanandersgehe zuPaketschalten
KonstanteWennReichweiteTypweitermachen
fürimportierenzurückkehrendurchfallenvar
1.3 Reservierte Wörter

•Konstante

true false iota nil

•Art der Daten

int int8 int16 int32 int64

uint uint8 uint16 uint32 uint64

float32 float64

complex128 complex64

byte rune string

bool error uintptr

•Funktion

make len cap new append copy

close delete complex real imag panic recover

1.4 Variablen
1.4.1 Variablentypen
TypGehen Sie zu Variablentypenfmt-Ausgabe
ganze Zahlint int8 int16 int32 int64 uint uint8 uint16 uint32 uint64%D
Gleitkommafloat32 float64%f %e %g
Pluralcomplex128 complex64%v
Boolescher Wertbool%T
Zeigeruintptr%D
Zitatmap slice channel%v
Bytebyte%D
irgendein Charakterrune%D
Zeichenfolgestring%S
Fehlererror%v
1.4.2 Variableninitialisierung
  • Wenn er nach der Deklaration nicht explizit initialisiert wird, wird der numerische Typ auf O initialisiert, der String-Typ wird auf eine leere Zeichenfolge initialisiert und der boolesche Typ wird auf false initialisiert.

    Referenztypen, Funktionen, Zeiger und Schnittstellen werden auf Null initialisiert

    • var eine Zeichenfolge = "china"
    • var a,b int=3,7
    • var a="china", Typinferenz
    • var a,b=“china”, 7
  • Variablen (nicht globale Variablen) innerhalb von Funktionen können deklariert und initialisiert werden durch: =

    • ein:=3
  • Der Unterstrich gibt eine anonyme Variable an

    • _=2+4
  • Anonyme Variablen belegen keinen Namespace und weisen keinen Speicher zu, sodass sie wiederverwendet werden können

1,5 Konstanten

Konstanten müssen bei ihrer Definition ein Wert zugewiesen werden und ihr Wert kann während der Ausführung des Programms nicht geändert werden.

const PI float32=3.14

const(
	PI=3.14
	E=2.71
)

const(
  a=100
  b	//100,跟上一行的值相同
  c	//100,跟上一行的值相同
)

const(
	a = iota	//0
  b					//1
  c					//2
  d					//3
)

const(
	a = iota	//0
  b					//1
  _					//2
  d					//3
)

const(
	a = iota	//0
  b	= 30		//30
  c	= iota	//2
  d					//3
)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
1.6 Literale

Literal: Der Variablenname erscheint nicht, aber der Wert erscheint direkt.Literale von Basistypen sind äquivalent zu Konstanten

Mit Ausnahme von Literalen können verschiedene Datentypen nicht verglichen werden

fmt.Printf("9tn"04 ==4.00//用到了整型字面量和浮点型字面量
fmt.Printf("%vn".4i//虚数字面量0.4i
fmt.Printf("%tn", "u4f17'=='//Unicode和rune字面量
fmt.Printf("Hello nWorldn!n"//字符串字面量
  • 1
  • 2
  • 3
  • 4
1.7 Variablenumfang
globale Variablen
var (
  A=3	//全局变量,大写字母开头,所有地方都可以访问,跨package访问时需要带上package名称
	b=4	//全局变量,小写字母开头,本package内都可以访问
  • 1
  • 2
  • 3
  • 4
lokale Variablen
func fool{
	b:=5 //局部变量,仅本函数内可以访问。内部声明的变量可以跟外部声明的变量有冲突,以内部的为准
  
	{
  	b:=6	//仅小圈定的作用域内可以访问,可以跟外部的变量有冲突
	}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
1.8 Kommentare und godoc
1.8.1 Form der Kommentare
  • Einzeilige Kommentare.Beginnen mit //
  • Mehrzeilige Kommentare. Mehrere aufeinanderfolgende Zeilen beginnen mit // oder verwenden Sie /* vor dem Absatz und */ am Ende des Absatzes.
  • Zwischen mehrzeiligen Kommentaren dürfen keine Leerzeilen stehen
  • HINWEIS: Aufmerksamkeit erregend, TODO: Muss in Zukunft optimiert werden, Veraltet: Es wird dringend empfohlen, keine Variablen oder Funktionen zu verwenden.
  • Sie können Go-Code schreiben, indem Sie vor der Kommentarzeile einen Einzug hinzufügen.
1.8.2 Position von Kommentaren
  • Paketkommentare. Obiges Paket xxx. Ein Paket muss nur Paketkommentare an einer Stelle schreiben, normalerweise in einem dedizierten doc.go.

    Es gibt nur eine Zeile packagexxx und Kommentare zum Paket.

  • Kommentare strukturieren.Geben Sie oben die Struktur xxx ein

  • Funktionskommentare.obige Funktion xxx()

  • Zeilenkommentare.über oder rechts von der Zeile

1.8.3 Gehe zu doc
  • go doc ist der Befehl, der mit go geliefert wird
  • go doc Eingangsklasse/util
1.8.4 godoc
  • godoc kann eine Webversion des Anmerkungsdokuments für den Projektcode exportieren.
    • Sie müssen zuerst golang.org/x/tools/cmd/godoc installieren
    • Starten Sie http:godoc -http=:6060
    • Besuchen Sie mit einem Browser: http://127.0.0.1:6060/pkg/go-course/entry class