Variablen in Go

Header für Go-ArtikelAktualisiert am 3. Mai 2018


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):

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

Durch Benutzung dieser Website erklären Sie sich mit der Verwendung von Cookies einverstanden. Mehr Informationen

Diese Website speichert Cookies. Die Verwendung von Cookies dient dazu, Inhalte und Anzeigen zu personalisieren, Funktionen für soziale Medien anbieten zu können und die Zugriffe auf diese Website zu analysieren. Außerdem werden Informationen zur Nutzung dieser Webseite an Partner für soziale Medien, Werbung und Analysen weitergegeben. Mit der Verwendung dieser Internetpräsenz stimmen Sie zu, dass diese Seiten Cookies für Analysen, personalisierte Inhalte und Werbung verwenden dürfen. Weitere Informationen hierzu finden Sie in meiner Datenschutzerklärung.

Schließen