Junior
Milyen adattípusok léteznek a Go-ban?
sobes.tech MI
Válasz az MI-től
A Go nyolc adat típus kategóriával rendelkezik:
-
Alapvető típusok (Basic types) - a fordító által előre definiált.
- Logikai típusok:
bool - Szám típusok:
- Egész számok:
int,int8,int16,int32,int64,uint,uint8(byte),uint16,uint32,uint64,uintptr - Lebegőpontos számok:
float32,float64 - Komplex számok:
complex64,complex128
- Egész számok:
- Sztringek:
string
- Logikai típusok:
-
Összetett típusok (Aggregate types) - fix méretű kollekciók.
- Tömbök:
[n]T(aholna méret,Taz elemtípus) - Struktúrák:
struct {}(nevezett mezők gyűjteménye különböző típusokból)
- Tömbök:
-
Referencia típusok (Reference types) - referencia típusok, referencia által átadva, tárolnak egy mutatót az alapadatokra.
- Szeletek:
[]T(dinamikus tömb, tömbön alapulva) - Térképek (Map):
map[K]V(kulcs-érték párok kollekciója) - Mutatók:
*T(egy változó címét tárolja) - Csatornák:
chan T,chan<- T,<-chan T(szinkronizáció és kommunikáció goroutine-ok között) - Funkciók:
func(...) (...)(a típus a függvény szignatúrája)
- Szeletek:
-
Interfész típusok (Interface types) - meghatározzák a metódus szignatúrák halmazát, amelyeket a típusok megvalósítanak.
- Interfészek:
interface{}(üres interfész),interface{ methodName(...) ... }
- Interfészek:
Példák:
// Alapvető típusok
var isTrue bool = true
var age int = 30
var price float64 = 19.99
var name string = "Go Gopher"
// Összetett típusok
var numbers [5]int = [5]int{1, 2, 3, 4, 5} // Tömb
type Person struct { // Struktúra
Name string
Age int
}
var p Person = Person{Name: "Alice", Age: 25}
// Referencia típusok
var slice []int = []int{1, 2, 3} // Szelet
var grades map[string]int = map[string]int{"Alice": 90, "Bob": 85} // Térkép
var ptr *int = &age // Mutató
var dataChan chan int = make(chan int) // Csatorna
var myFunc func(int) int = func(x int) int { return x * 2 } // Függvény
// Interfész típusok
var i interface{} = "anything" // Üres interfész
type Shape interface { // Interfész
Area() float64
}