Sobes.tech
Junior

Koje su glavne strukture podataka u Go?

sobes.tech АИ

Одговор од АИ

U jeziku Go, postoje sljedeće osnovne (primitivne) i složene (kompozitne) strukture podataka:

Primitivne:

  • Logičke vrijednosti (bool)
  • Numerički tipovi:
    • Cijeli brojevi (int, int8, int16, int32, int64, uint, uint8, uint16, uint32, uint64, uintptr)
    • Brojevi sa pokretnom zarezom (float32, float64)
    • Kompleksni brojevi (complex64, complex128)
    • Byte (byte - alias za uint8)
    • Rune (rune - alias za int32, predstavlja Unicode znak)
  • Nizovi (string)

Složene:

  • Nizovi (array)
    • Fiksne veličine.
    var arr [5]int // niz od 5 cijelih brojeva
    
  • Reznice (slice)
    • Dinamičke veličine, zasnovane na nizovima.
    var s []int // neinicijalizirani reznica
    s = make([]int, 5, 10) // reznica dužine 5 i kapaciteta 10
    
  • Mape (map)
    • Neseštrirana kolekcija parova ključ-vrijednost.
    m := make(map[string]int) // mapa sa ključevima tipa string i vrijednostima int
    
  • Strukture (struct)
    • Tipizirana kolekcija polja.
    type Person struct {
        Name string
        Age  int
    }
    
  • Pokazivači (pointer)
    • Čuvaju adresu memorijske ćelije.
    var x int = 10
    var p *int = &x // p pokazuje na x
    
  • Funkcije (func)
    • U jeziku Go, funkcije su tipovi prve klase.
    type MyFunc func(int) string // tip funkcije
    
  • Kanali (channel)
    • Koriste se za sinhronizaciju i razmjenu podataka između gorutina.
    ch := make(chan int) // nebufferirani kanal za int
    
  • Interfejsi (interface)
    • Predstavljaju skup metoda koje tip mora implementirati.
    type Reader interface {
        Read(p []byte) (n int, err error)
    }
    

Takođe je važno spomenuti i druge važne složene tipove, kao što su:

  • Slici bajtova ([]byte)
  • Slici rune ([]rune)

Ove strukture podataka pružaju fleksibilnost i performanse za širok spektar zadataka u jeziku Go.