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 // ZuweisungFü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 = 100Außerdem existiert unter Verwendung von := auch eine Kurzschreibweise (short variable declaration), die allerdings nur innerhalb von Funktionen erlaubt ist.
x := 100In 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 VariablenDiese Zweifach-Deklaration mit := sollte nicht verwechselt werden mit einer Mehrfach-Zuweisung mittels des Zuweisungs-Operator (=).
a, b = x, yHier 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 = 0Konstanten
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 = 100Freilich 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