Go 1.22 behebt langjähriges Problem mit for-Schleifen
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 löst Probleme mit for-Schleifen
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 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 zur Schleifenvariablen.
Performance und Neues für Standardbibliothek
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.
(mdo)