Junior
Welke datatypes bestaan er in Go?
sobes.tech AI
Antwoord van AI
In Go zijn er vier categorieën datatypes:
-
Basistypen (Basic types) - vooraf gedefinieerd door de compiler.
- Booleans:
bool - Numeriek:
- Gehele getallen:
int,int8,int16,int32,int64,uint,uint8(byte),uint16,uint32,uint64,uintptr - Kommazettingen:
float32,float64 - Complexe getallen:
complex64,complex128
- Gehele getallen:
- String:
string
- Booleans:
-
Samengestelde typen (Aggregate types) - collecties van vaste grootte.
- Arrays:
[n]T(waarnde grootte is,Thet elementtype) - Structuren:
struct {}(verzameling van benoemde velden van verschillende types)
- Arrays:
-
Referentietypen (Reference types) - typen die door verwijzing worden doorgegeven, slaan een pointer naar de basisgegevens op.
- Slices:
[]T(dynamisch array, gebaseerd op een array) - Kaarten (Maps):
map[K]V(verzameling van sleutel-waarde paren) - Pointers:
*T(slaat het adres van een variabele op) - Kanalen:
chan T,chan<- T,<-chan T(voor synchronisatie en communicatie tussen goroutines) - Functies:
func(...) (...)(het type is de handtekening van de functie)
- Slices:
-
Interfacetypen (Interface types) - definiëren een set van methodesignaturen die door datatypes worden geïmplementeerd.
- Interfaces:
interface{}(lege interface),interface{ methodName(...) ... }
- Interfaces:
Voorbeelden:
// Basistypen
var isTrue bool = true
var age int = 30
var price float64 = 19.99
var name string = "Go Gopher"
// Samengestelde typen
var numbers [5]int = [5]int{1, 2, 3, 4, 5} // Array
type Person struct { // Structuur
Name string
Age int
}
var p Person = Person{Name: "Alice", Age: 25}
// Referentietypen
var slice []int = []int{1, 2, 3} // Slice
var grades map[string]int = map[string]int{"Alice": 90, "Bob": 85} // Kaart
var ptr *int = &age // Wijsvinger
var dataChan chan int = make(chan int) // Kanaal
var myFunc func(int) int = func(x int) int { return x * 2 } // Functie
// Interfacetypen
var i interface{} = "anything" // Lege interface
type Shape interface { // Interface
Area() float64
}