Junior
Milyen fő adatstruktúrák vannak a Go-ban?
sobes.tech MI
Válasz az MI-től
A Go nyelvben a következő alapvető (primitive) és összetett (composite) adatstruktúrák léteznek:
Alapvető:
- Logikai értékek (
bool) - Numerikus típusok:
- Egész számok (
int,int8,int16,int32,int64,uint,uint8,uint16,uint32,uint64,uintptr) - Lebegőpontos számok (
float32,float64) - Komplex számok (
complex64,complex128) - Byte (
byte- azuint8szinonimája) - Rune (
rune- azint32szinonimája, Unicode karaktert reprezentál)
- Egész számok (
- Sztringek (
string)
Összetettek:
- Tömbök (
array)- Fix méretű.
var arr [5]int // 5 egész számból álló tömb - Szálak (
slice)- Dinamikus méretű, tömbökön alapul.
var s []int // nem inicializált szál s = make([]int, 5, 10) // 5 hosszú, 10 kapacitású szál - Térképek (
map)- Rendezés nélküli kulcs-érték párok gyűjteménye.
m := make(map[string]int) // térkép string kulcsokkal és int értékekkel - Struktúrák (
struct)- Típusosított mezők gyűjteménye.
type Person struct { Name string Age int } - Mutatók (
pointer)- Memóriahely címét tárolják.
var x int = 10 var p *int = &x // p x-re mutat - Függvények (
func)- A Go nyelvben a függvények első osztályú típusok.
type MyFunc func(int) string // függvény típus - Csatornák (
channel)- Szinkronizációra és adatcsere céljából használják goroutine-ok között.
ch := make(chan int) // nem pufferelt csatorna int típushoz - Interfészek (
interface)- Egy típus által implementálandó metódusok halmazát képviseli.
type Reader interface { Read(p []byte) (n int, err error) }
Ezen kívül fontos megemlíteni más összetett típusokat is, mint például:
- Byte szeletek (
[]byte) - Rune szeletek (
[]rune)
Ezek az adatszerkezetek rugalmasságot és teljesítményt nyújtanak a Go nyelvben végzett széles körű feladatokhoz.