Lektionen des Moduls (1/5)
Variablen und Typen
In Go hat jede Variable einen statischen Typ, der dem Compiler bekannt ist: einmal deklariert, kann eine Variable ihren Typ nicht ändern. Diese Starrheit – ganz anders von JavaScript oder Python – ist der Preis, den Sie zahlen, um Kompilierungszeit zu erhalten Fehler statt Laufzeitfehler, kleine Binärdateien und vorhersehbar Leistung.
Zwei Formen der Deklaration
var mit explizitem Typ
var name string = "Ada"
var age int = 36
var active boolWenn Sie den Wert weglassen (wie in var active bool), erhält die Variable den
Nullwert seines Typs – darauf kommen wir in der nächsten Lektion zurück.
Kurzdeklaration :=
Innerhalb einer Funktion können Sie := verwenden, das den Typ aus ableitet
Ausdruck auf der rechten Seite. Es ist die idiomatische Form und die, die Sie verwenden werden
90 % der Zeit:
name := "Ada" // string
age := 36 // int
pi := 3.14 // float64
active := true // boolDie Grundtypen, die Sie gleich treffen werden
| Geben Sie | ein Beispiel | Notizen |
|---|---|---|
int | 42 | Größe hängt von der CPU ab (32 oder 64 Bit) |
float64 | 3.14 | Standard für Dezimalliterale |
string | "Ada" | UTF-8, unveränderlich |
bool | true, false | kein „Wahrheit“, nur reines bool |
rune | 420 | Alias von 421, stellt einen Unicode-Codepunkt dar |
422 | 423 | Alias von 424 |
Es gibt auch int8/16/32/64, uint8/16/32/64, float32 und complex64/128
für den Fall, dass Sie genaue Größen benötigen (Binäranalyse, Interop usw.).
Mehrere Deklarationen
Sie können mehrere Variablen mit einem var-Block oder einem Plural-:= deklarieren:
var (
name string = "Ada"
age int = 36
active bool
)
x, y := 10, 20
a, b, c := "a", 2, true // different types: no problemVariablen deklariert, aber nicht verwendet
Go ist streng: Eine Variable, die deklariert und nie verwendet wird, ist eine Kompilierung
Fehler, keine Warnung. Dasselbe gilt auch für ungenutzte imports.
func main() {
x := 42
// error: x declared and not used
}Um die Regel vorübergehend außer Kraft zu setzen, verwenden Sie _ (leerer Bezeichner):
_ = xDu bist dran
Verwenden Sie var, um einen Variablennamen vom Typ string mit dem Wert „Ada“ zu deklarieren und auszugeben.
Hinweis anzeigen
Die Langform ist `var <name> <type> = <value>`.
Lösung nach 3 Versuchen verfügbar
Verwenden Sie in einer einzelnen Zeile :=, um dem Alter 36 und der Stadt „Roma“ zuzuweisen, und drucken Sie dann beide aus.
Hinweis anzeigen
Sie können mehrere Variablen gleichzeitig zuweisen: `a, b := 1, "due"`.
Lösung nach 3 Versuchen verfügbar
Welche dieser Deklarationen erzeugt einen Kompilierungsfehler, wenn sie AUSSERHALB einer Funktion platziert wird?
// (a)
var name string = "Ada"
// (b)
age := 36
// (c)
const PI = 3.14Zusammenfassung
– Statischer Typ, automatisch abgeleitet von := oder deklariert mit var.
:=nur innerhalb von Funktionen; auf Paketebene nurvar/const.- Nicht verwendete Variablen und Importe = Kompilierungsfehler: Verwenden Sie
_, um sie stummzuschalten. int/float64/string/booldecken 90 % der alltäglichen Fälle ab.