Sobes.tech
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 - az uint8 szinonimája)
    • Rune (rune - az int32 szinonimája, Unicode karaktert reprezentál)
  • 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.