zurück zum Artikel

Go 1.22 behebt langjähriges Problem mit for-Schleifen

Madeleine Domogalla

(Bild: The Viz / Shutterstock.com)

Das Update der Programmiersprache Go auf Version 1.22 setzt auf Performance, behebt einen for-Schleifen-Bug und nimmt Änderungen an Standardbibliothek vor.

Für die Programmiersprache Go liegt mit Version 1.22 ein Update vor. Damit hält das Entwicklerteam den halbjährlichen Veröffentlichungszyklus ein. Inhalt des Updates ist neben dem Beheben eines Problems mit for-Schleifen die neu integrierte Unterstützung für das Durchlaufen von Ganzzahlen. Zudem gibt es Neuerungen in der Standardbibliothek.

Go 1.22 behebt das langjährige Problem in der for-Schleife, das zu unbeabsichtigter gemeinsamer Nutzung von Schleifenvariablen zwischen Iterationen führte. Im Ankündigungsbeitrag der Go-Entwickler [1] findet sich ein Code-Beispiel, das die Lösung demonstriert, indem es a, b und c in einer beliebigen Reihenfolge ausgibt.

func main() {
    done := make(chan bool)

    values := []string{"a", "b", "c"}
    for _, v := range values {
        go func() {
            fmt.Println(v)
            done <- true
        }()
    }

    // wait for all goroutines to complete before exiting
    for _ = range values {
        <-done
    }
}

Weitere Einzelheiten und Werkzeuge zur Vermeidung von Code-Brüchen erläutern sie in einem früheren Blogbeitrag [2] zur Schleifenvariablen.

Das Entwicklerteam hinter der Programmiersprache hat Speicheroptimierungen an der Go-Laufzeitumgebung vorgenommen, die die CPU-Leistung um ein bis drei Prozent verbessern. Sie sollen außerdem den Speicher-Overhead der meisten Go-Programme um ein Prozent reduzieren.

Weiterhin bringt das "Minor Update" Änderungen an der Standardbibliothek mit sich. Sie umfassen etwa ein neues math/rand/v2-Paket mit einer laut Blogbeitrag saubereren und konsistenteren API für die Verwendung von Pseudo-Zufallsgenerierungsalgorithmen. Zudem liefert sie Optimierungen an net/http.ServeMux und führt den Null[T]-Typ in database/sql ein.

Weitere Informationen zu Go 1.22 finden sich auf dem The Go Blog [3].

(mdo [4])


URL dieses Artikels:
https://www.heise.de/-9621166

Links in diesem Artikel:
[1] https://go.dev/blog/go1.22
[2] https://go.dev/blog/loopvar-preview
[3] https://go.dev/blog/go1.22
[4] mailto:mdo@ix.de