Sobes.tech
Junior

Wat zijn de belangrijkste datastructuren in Go?

sobes.tech AI

Antwoord van AI

In Go bestaan de volgende basis (primitieve) en samengestelde (composite) gegevensstructuren:

Primitief:

  • Booleans (bool)
  • Numerieke types:
    • Gehele getallen (int, int8, int16, int32, int64, uint, uint8, uint16, uint32, uint64, uintptr)
    • Komma-getallen (float32, float64)
    • Complexe getallen (complex64, complex128)
    • Byte (byte - alias voor uint8)
    • Rune (rune - alias voor int32, vertegenwoordigt een Unicode-teken)
  • Strings (string)

Samengesteld:

  • Arrays (array)
    • Vaste grootte.
    var arr [5]int // array van 5 gehele getallen
    
  • Slices (slice)
    • Dynamische grootte, gebaseerd op arrays.
    var s []int // niet-geïnitialiseerde slice
    s = make([]int, 5, 10) // slice van lengte 5 en capaciteit 10
    
  • Maps (map)
    • Ongeordende collectie van sleutel-waarde paren.
    m := make(map[string]int) // map met string-keys en int-waarden
    
  • Structs (struct)
    • Getypte collectie van velden.
    type Person struct {
        Name string
        Age  int
    }
    
  • Pointers (pointer)
    • Bevat het adres van een geheugencel.
    var x int = 10
    var p *int = &x // p wijst naar x
    
  • Functies (func)
    • In Go zijn functies first-class types.
    type MyFunc func(int) string // functietype
    
  • Kanalen (channel)
    • Worden gebruikt voor synchronisatie en gegevensuitwisseling tussen goroutines.
    ch := make(chan int) // onbufferde kanaal voor int
    
  • Interfaces (interface)
    • Vertegenwoordigen een set methoden die een type moet implementeren.
    type Reader interface {
        Read(p []byte) (n int, err error)
    }
    

Het is ook belangrijk om andere belangrijke samengestelde typen te vermelden, zoals:

  • Byte-slices ([]byte)
  • Rune-slices ([]rune)

Deze gegevensstructuren bieden flexibiliteit en prestaties voor een breed scala aan taken in Go.