Sobes.tech
Junior

Millised on Go peamised andmestruktuurid?

sobes.tech AI

Vastus AI-lt

Go keeles on järgmised põhilised sisseehitatud (primitive) ja koosnevad (composite) andmestruktuurid:

Sisemised:

  • Tõeväärtus (bool)
  • Arvutüübid:
    • Täisarvud (int, int8, int16, int32, int64, uint, uint8, uint16, uint32, uint64, uintptr)
    • Ujuvväärtuslikud arvud (float32, float64)
    • Kompleksarvud (complex64, complex128)
    • bait (byte - псевдониm uint8)
    • rune (rune - псевдониm int32, esindab Unicode sümbolit)
  • Ridad (string)

Koosseis:

  • Massiivid (array)
    • Kindel suurusega.
    var arr [5]int // 5 täisarvust koosnev massiiv
    
  • Viilud (slice)
    • Dynaamilise suurusega, põhineb massiividel.
    var s []int // initsialiseerimata viil
    s = make([]int, 5, 10) // 5 pikkusega, mahutavusega 10
    
  • Kaardid (map)
    • Mitmepoolne kogum võtmete ja väärtustega.
    m := make(map[string]int) // kaart, mille võtmed on string ja väärtused int
    
  • Struktuurid (struct)
    • Tüübitud väljade kogum.
    type Person struct {
        Name string
        Age  int
    }
    
  • Viited (pointer)
    • Hoidke mäluaadressi.
    var x int = 10
    var p *int = &x // p näitab x-le
    
  • Funktsioonid (func)
    • Go keeles on funktsioonid esimese klassi tüübid:
    type MyFunc func(int) string // funktsiooni tüüp
    
  • Kanalid (channel)
    • Kasutatakse sünkroniseerimiseks ja andmevahetuseks gorutinide vahel.
    ch := make(chan int) // buferita kanal int tüüpi
    
  • Liidesed (interface)
    • Esindavad meetodite kogumit, mida tüüp peab rakendama:
    type Reader interface {
        Read(p []byte) (n int, err error)
    }
    

Samuti tasub mainida teisi olulisi koosnevaid tüüpe:

  • baitide viil ([]byte)
  • rune'i viil ([]rune)

Need andmestruktuurid tagavad paindlikkuse ja jõudluse laiaulatuslike ülesannete jaoks Go keeles.