Go-Datentypen
Nachfolgend sind alle integrierten Typen in der Go-Sprache aufgeführt. Weitere Details finden Sie im Referenzhandbuch - Typen.
Boolescher Typ
Der boolesche Typ hat nur Wahr- und Falschwerte.
| Typ | Beschreibung |
|---|---|
bool | true ist der Wahrwert, false ist der Falschwert |
TIP
In Go repräsentiert die Ganzzahl 0 nicht den Falschwert, und nicht-null Ganzzahlen können auch nicht den Wahrwert repräsentieren. Das heißt, Zahlen können nicht boolesche Werte ersetzen, um logische Urteile zu fällen. Beide sind völlig unterschiedliche Typen.
Ganzzahltyp
Go weist verschiedenen Bit-Ganzzahlen unterschiedliche Typen zu, hauptsächlich unterteilt in vorzeichenlose und vorzeichenbehaftete Ganzzahltypen.
| Nr. | Typ und Beschreibung |
|---|---|
uint8 | Vorzeichenloser 8-Bit-Ganzzahltyp |
uint16 | Vorzeichenloser 16-Bit-Ganzzahltyp |
uint32 | Vorzeichenloser 32-Bit-Ganzzahltyp |
uint64 | Vorzeichenloser 64-Bit-Ganzzahltyp |
int8 | Vorzeichenbehafteter 8-Bit-Ganzzahltyp |
int16 | Vorzeichenbehafteter 16-Bit-Ganzzahltyp |
int32 | Vorzeichenbehafteter 32-Bit-Ganzzahltyp |
int64 | Vorzeichenbehafteter 64-Bit-Ganzzahltyp |
uint | Vorzeichenloser Ganzzahltyp, mindestens 32 Bit |
int | Ganzzahltyp, mindestens 32 Bit |
uintptr | Entspricht einem vorzeichenlosen 64-Bit-Ganzzahltyp, jedoch speziell für Zeigeroperationen verwendet, um tote Zeigeradressen zu speichern. |
Gleitkommatyp
IEEE-754-Gleitkommazahlen, hauptsächlich unterteilt in einfachgenaue und doppeltgenaue Gleitkommazahlen.
| Typ | Beschreibung |
|---|---|
float32 | IEEE-754 32-Bit-Gleitkomma |
float64 | IEEE-754 64-Bit-Gleitkomma |
Komplexer Typ
| Typ | Beschreibung |
|---|---|
complex128 | 64-Bit-Real- und Imaginärteil |
complex64 | 32-Bit-Real- und Imaginärteil |
Zeichentyp
Go-Sprachenstrings sind vollständig UTF-8-kompatibel.
| Typ | Beschreibung |
|---|---|
byte | Entspricht uint8, kann ANSCII-Zeichen ausdrücken |
rune | Entspricht int32, kann Unicode-Zeichen ausdrücken |
string | String ist eine Byte-Sequenz, kann in []byte-Typ konvertiert werden, d. h. Byte-Slice |
Abgeleitete Typen
| Typ | Beispiel |
|---|---|
| Array | [5]int, Ganzzahl-Array der Länge 5 |
| Slice | []float64, 64-Bit-Gleitkomma-Slice |
| Map | map[string]int, Map mit String-Schlüssel und Ganzzahl-Wert |
| Struktur | type Gopher struct{}, Gopher-Struktur |
| Zeiger | *int, ein Ganzzahl-Zeiger |
| Funktion | type f func(), ein Funktionstyp ohne Parameter und Rückgabewert |
| Schnittstelle | type Gopher interface{}, Gopher-Schnittstelle |
| Kanal | chan int, Ganzzahl-Kanal |
Nullwert
In der offiziellen Dokumentation wird der Nullwert als zero value bezeichnet. Der Nullwert ist nicht nur die numerische Null, sondern genauer gesagt der Leerwert oder Standardwert eines Typs.
| Typ | Nullwert |
|---|---|
| Numerische Typen | 0 |
| Boolescher Typ | false |
| String-Typ | "" |
| Array | Sammlung von Nullwerten des entsprechenden Typs fester Länge |
| Struktur | Struktur, deren interne Felder alle Nullwerte sind |
| Slice, Map, Funktion, Schnittstelle, Kanal, Zeiger | nil |
nil
nil ist ähnlich wie none oder null in anderen Sprachen, aber nicht gleichbedeutend. nil ist nur der Nullwert einiger Referenztypen und gehört keinem Typ an. Aus dem Quellcode ist ersichtlich, dass nil nur eine Variable ist:
var nil TypeAußerdem kann eine Anweisung wie nil == nil nicht kompiliert werden.
