Sobes.tech
Junior

Kādas ir galvenās datu struktūras Go valodā?

sobes.tech AI

Atbilde no AI

Go valodā ir šādas galvenās iebūvētās (primitive) un sastāvdaļu (composite) datu struktūras:

Iebūvētās:

  • Boole (bool)
  • Skaitliskie tipi:
    • Veseli skaitļi (int, int8, int16, int32, int64, uint, uint8, uint16, uint32, uint64, uintptr)
    • Peldošā punkta skaitļi (float32, float64)
    • Komplekss skaitļi (complex64, complex128)
    • Baits (byte - псевдоним uint8)
    • Rune (rune - псевдониm int32, pārstāv Unicode simbolu)
  • Rindas (string)

Sastāvdaļas:

  • Masīvi (array)
    • Noteikta izmēra.
    var arr [5]int // 5 veselu skaitļu masīvs
    
  • Sēklas (slice)
    • Dinamisks izmērs, balstīts uz masīviem.
    var s []int // nenoteikts sēkla
    s = make([]int, 5, 10) // 5 garuma, 10 ietilpības sēkla
    
  • Kartes (map)
    • Neordinēta pāru kolekcija ar atslēgām un vērtībām.
    m := make(map[string]int) // karte ar atslēgām `string` un vērtībām `int`
    
  • Struktūras (struct)
    • Tipizēta lauku kolekcija.
    type Person struct {
        Name string
        Age  int
    }
    
  • Norādes (pointer)
    • Glabā atmiņas adresi.
    var x int = 10
    var p *int = &x // p norāda uz x
    
  • Funkcijas (func)
    • Go valodā funkcijas ir pirmās klases tipi:
    type MyFunc func(int) string // funkcijas tips
    
  • Kanāli (channel)
    • Izmanto sinhronizācijai un datu apmaiņai starp gorutinām.
    ch := make(chan int) // bezbuferu kanāls int tipam
    
  • Interfeisi (interface)
    • Apzīmē metožu kopumu, ko tips ir jārealizē:
    type Reader interface {
        Read(p []byte) (n int, err error)
    }
    

Tāpat ir vērts pieminēt citus svarīgus sastāvdaļu tipus:

  • Baitu sēklas ([]byte)
  • Rune sēklas ([]rune)

Šīs datu struktūras nodrošina elastību un veiktspēju plašam uzdevumu spektram Go valodā.