Sobes.tech
Junior

Welche sind die wichtigsten Datenstrukturen in Go?

sobes.tech KI

Antwort von AI

In Go gibt es die folgenden grundlegenden (primitive) und zusammengesetzten (composite) Datenstrukturen:

Primitive:

  • Boolesche Werte (bool)
  • Numerische Typen:
    • Ganzzahlen (int, int8, int16, int32, int64, uint, uint8, uint16, uint32, uint64, uintptr)
    • Gleitkommazahlen (float32, float64)
    • Komplexzahlen (complex64, complex128)
    • Byte (byte - Alias für uint8)
    • Rune (rune - Alias für int32, stellt ein Unicode-Zeichen dar)
  • Strings (string)

Zusammengesetzt:

  • Arrays (array)
    • Feste Größe.
    var arr [5]int // Array aus 5 Ganzzahlen
    
  • Slices (slice)
    • Dynamische Größe, basieren auf Arrays.
    var s []int // nicht initialisierter Slice
    s = make([]int, 5, 10) // Slice mit Länge 5 und Kapazität 10
    
  • Maps (map)
    • Unsortierte Sammlung von Schlüssel-Wert-Paaren.
    m := make(map[string]int) // Map mit string-Schlüsseln und int-Werten
    
  • Structs (struct)
    • Typisierte Sammlung von Feldern.
    type Person struct {
        Name string
        Age  int
    }
    
  • Zeiger (pointer)
    • Speichern die Adresse einer Speicherzelle.
    var x int = 10
    var p *int = &x // p zeigt auf x
    
  • Funktionen (func)
    • In Go sind Funktionen First-Class-Typen.
    type MyFunc func(int) string // Funktionstyp
    
  • Kanäle (channel)
    • Werden für Synchronisation und Datenaustausch zwischen Goroutinen verwendet.
    ch := make(chan int) // unpufferter Kanal für int
    
  • Interfaces (interface)
    • Repräsentieren eine Menge von Methoden, die ein Typ implementieren muss.
    type Reader interface {
        Read(p []byte) (n int, err error)
    }
    

Es ist auch wichtig, andere wichtige zusammengesetzte Typen zu erwähnen, wie:

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

Diese Datenstrukturen bieten Flexibilität und Leistung für eine Vielzahl von Aufgaben in Go.