Auf den ersten Artikel, der sich mit der Installation von Go (unter macOS) befaßte, folgen im zweiten Teil einige Ausführungen zu Variablen (und Konstanten).
Variablen
In diesem ersten Beispiel wird eine Variable deklariert und anschließend ein Wert vom Typ int
zugewiesen. Diese Vorgehensweise in zwei Schritten sieht folgendermaßen aus:
var x int // Deklaration
x = 100 // Zuweisung
Für die Variablendeklaration existiert das Schlüsselwort var
. Dem folgt der Variablenname und dann der Datentyp.
Die Deklaration mehrere Variablen kann auch mit runden Klammern in einer Gruppe zusammengefasst werden:
var (
x int
y int
)
In einer Gruppe können auch Variablen unterschiedlichen Typs deklariert werden:
var (
name string
age int
)
Es ist auch möglich, Deklaration und Zuweisung in einer Zeile vorzunehmen:
var x = 100
Außerdem existiert unter Verwendung von :=
auch eine Kurzschreibweise (short variable declaration), die allerdings nur innerhalb von Funktionen erlaubt ist.
x := 100
In den beiden vorhergehenden Beispielen wurde der Datentyp int
weggelassen. Denn anhand des zugewiesenen Werts, kann der Compiler auf den Datentyp schließen, so daß eine explizite Angabe entfällt. Dies wird als type inference bezeichnet.
Eine Mehrfachzuweisung in einer Zeile ist ebenfalls erlaubt:
x, y := 100, 500 // Deklaration von zwei Variablen
Diese Zweifach-Deklaration mit :=
sollte nicht verwechselt werden mit einer Mehrfach-Zuweisung mittels des Zuweisungs-Operator (=
).
a, b = x, y
Hier wird a
und b
jeweils der Wert von x
und y
zugewiesen.
Sofern keine Zuweisung vorgenommen wird, erhält die Variable den zero value des Datentyps. Das ist bei numerischen Werten die 0
, bei Booleschen Werten false
, bei Zeichenketten ""
und bei Interfaces und Referenztypen nil
.
package main
import "fmt"
func main() {
var width int
fmt.Println("width =", width)
}
// zero value:
// -> width = 0
Konstanten
Für die Deklaration von Konstanten steht das Schlüsselwort const
zur Verfügung. Ansonsten gelten die zu den Variablen gemachten Ausführungen.
const x int
x = 100
Freilich kann der einer Konstanten zugewiesene Wert nicht mehr geändert werden. Folgender Code führt zu einer Fehlermeldung:
package main
import "fmt"
func main() {
const height = 20
height = 40
fmt.Println("height =", height)
}
// -> cannot assign to height