Junior
Welche Datentypen gibt es in Go?
sobes.tech KI
Antwort von AI
In Go gibt es vier Kategorien von Datentypen:
-
Basistypen (Basic types) - vom Compiler vordefiniert.
- Boolesche:
bool - Numerische:
- Ganzzahlen:
int,int8,int16,int32,int64,uint,uint8(byte),uint16,uint32,uint64,uintptr - Gleitkommazahlen:
float32,float64 - Komplexe Zahlen:
complex64,complex128
- Ganzzahlen:
- Strings:
string
- Boolesche:
-
Aggregierte Typen (Aggregate types) - Sammlungen fester Größe.
- Arrays:
[n]T(wobeindie Größe ist,Tder Elementtyp) - Strukturen:
struct {}(Sammlung benannter Felder verschiedener Typen)
- Arrays:
-
Referenztypen (Reference types) - Referenztypen, die per Referenz übergeben werden, speichern einen Zeiger auf die Basisdaten.
- Slices:
[]T(dynamisches Array, basiert auf einem Array) - Karten (Maps):
map[K]V(Sammlung von Schlüssel-Wert-Paaren) - Zeiger:
*T(speichern die Adresse einer Variablen) - Kanäle:
chan T,chan<- T,<-chan T(zur Synchronisation und Kommunikation zwischen Goroutines) - Funktionen:
func(...) (...)(der Typ ist die Signatur der Funktion)
- Slices:
-
Schnittstellentypen (Interface types) - definieren eine Reihe von Methodensignaturen, die von Datentypen implementiert werden.
- Schnittstellen:
interface{}(leere Schnittstelle),interface{ methodName(...) ... }
- Schnittstellen:
Beispiele:
// Basistypen
var isTrue bool = true
var age int = 30
var price float64 = 19.99
var name string = "Go Gopher"
// Aggregierte Typen
var numbers [5]int = [5]int{1, 2, 3, 4, 5} // Array
type Person struct { // Struktur
Name string
Age int
}
var p Person = Person{Name: "Alice", Age: 25}
// Referenztypen
var slice []int = []int{1, 2, 3} // Slice
var grades map[string]int = map[string]int{"Alice": 90, "Bob": 85} // Karte
var ptr *int = &age // Zeiger
var dataChan chan int = make(chan int) // Kanal
var myFunc func(int) int = func(x int) int { return x * 2 } // Funktion
// Schnittstellentypen
var i interface{} = "anything" // Leere Schnittstelle
type Shape interface { // Schnittstelle
Area() float64
}