Sobes.tech
Junior

Kokios yra pagrindinės duomenų struktūros Go kalboje?

sobes.tech AI

Atsakymas iš AI

Go kalboje yra šios pagrindinės įvestinės (primitive) ir sudėtinės (composite) duomenų struktūros:

Įvestinės:

  • Boolean (bool)
  • Skaitmeniniai tipai:
    • Sveikieji skaičiai (int, int8, int16, int32, int64, uint, uint8, uint16, uint32, uint64, uintptr)
    • Slankiojo kablelio skaičiai (float32, float64)
    • Kompleksiniai skaičiai (complex64, complex128)
    • baitas (byte - псевдоним uint8)
    • rune (rune - псевдоним int32, atstovauja Unicode simbolį)
  • Eilutės (string)

Sudėtinės:

  • Masyvai (array)
    • Nustatyto dydžio.
    var arr [5]int // 5 sveikųjų skaičių masyvas
    
  • Slenksčiai (slice)
    • Dinamiškas dydis, pagrįstas masyvais.
    var s []int // neinitializuotas slenkstis
    s = make([]int, 5, 10) // 5 ilgio, 10 talpos slenkstis
    
  • Žemėlapiai (map)
    • Neporūšiuota porų rinkinys su raktų-vertės poromis.
    m := make(map[string]int) // žemėlapis su raktų tipu string ir reikšmių int
    
  • Struktūros (struct)
    • Tipizuota laukų kolekcija.
    type Person struct {
        Name string
        Age  int
    }
    
  • Nuorodos (pointer)
    • Laikoma atminties adreso.
    var x int = 10
    var p *int = &x // p nurodo į x
    
  • Funkcijos (func)
    • Go kalboje funkcijos yra pirmosios klasės tipai:
    type MyFunc func(int) string // funkcijos tipas
    
  • Kanalai (channel)
    • Naudojami sinchronizacijai ir duomenų mainams tarp gorutinų.
    ch := make(chan int) // nebuferizuotas kanalas int tipui
    
  • Interfeisai (interface)
    • Atstovauja metodų rinkinį, kurį tipas turi įgyvendinti:
    type Reader interface {
        Read(p []byte) (n int, err error)
    }
    

Taip pat verta paminėti kitus svarbius sudėtinius tipus:

  • baitų slankusis ([]byte)
  • rune slankusis ([]rune)

Šios duomenų struktūros užtikrina lankstumą ir našumą plačiam užduočių spektrui Go kalboje.