Go 1.22 ist da: Überblick über die wichtigsten Änderungen des neuen Releases

Online Python-Trainer für Anfänger

Lernen Sie Python einfach ohne theoretische Überlastung. Lösen Sie praktische Aufgaben mit automatischer Überprüfung und schreiben Sie Code direkt im Browser.

Kurs starten

Go 1.22 ist da: Was gibt es Neues in der Programmiersprache Golang



Das Go-Entwicklerteam (Golang) hat offiziell die Version 1.22 veröffentlicht. Dieses Update ist ein bedeutender Schritt in der Evolution der Sprache, der langjährige Unannehmlichkeiten behebt und lang erwartete Verbesserungen hinzufügt. Wir analysieren die wichtigsten Änderungen, die jeden Go-Entwickler betreffen werden.



Die Hauptänderung: Die korrigierte for-range-Schleife



Die am meisten erwartete Neuerung ist die Verhaltensänderung der Schleifenvariable in der for-range-Konstruktion. Bisher wurde die Variable einmal erstellt und in jeder Iteration wiederverwendet, was zu häufigen Fehlern beim Erfassen von Variablen in Closures (z. B. in Goroutinen) führte.

Ab Go 1.22 erstellt jede Iteration der for-range-Schleife eine neue Variable. Dies beseitigt automatisch eine Klasse von Bugs, die mit dem Erfassen der Adresse der Schleifenvariable verbunden sind. Alter Code, der unter Berücksichtigung des alten Verhaltens geschrieben wurde (z. B. mit explizitem Kopieren), bleibt funktionsfähig, aber der Compiler wird nun vor potenziellen Problemen warnen.



Das neue Paket math/rand/v2



Die Entwickler haben das Paket zur Generierung von Zufallszahlen überarbeitet. In Go 1.22 wird math/rand/v2 vorgestellt, das Folgendes bietet:

  • Schnellere Algorithmen. Die neue Implementierung verwendet ChaCha8, was die Generierungsgeschwindigkeit erheblich erhöht.
  • Verbesserte Sicherheit. Die Thread-Sicherheit ist jetzt standardmäßig aktiviert, was das Schreiben korrekten Codes vereinfacht.
  • Saubere API. Alte Funktionen, die Fehler generierten, wurden entfernt. Die neue Schnittstelle ist logischer geworden.

Das Paket math/rand/v2 wird für alle neuen Projekte empfohlen, obwohl das alte math/rand aus Gründen der Abwärtskompatibilität weiterhin verfügbar ist.



Verbesserungen beim Routing und HTTP-Server



In die Standardbibliothek net/http wurde die Möglichkeit hinzugefügt, Vorlagen in Routen zu verwenden. Jetzt können komplexere Regeln geschrieben werden, ohne auf externe Frameworks zurückgreifen zu müssen:

  • Unterstützung für HTTP-Methoden. Beispielsweise verarbeitet GET /items/{id} nur GET-Anfragen.
  • Pfadvalidierung. Es besteht nun die Möglichkeit, genaue Pfade anzugeben und das verbleibende URL-Fragment zu verarbeiten (über {$}).

Dies vereinfacht die Erstellung von REST-APIs und macht die Standardbibliothek noch wettbewerbsfähiger.



Leistung und Werkzeuge



Das Release enthält auch mehrere Leistungsverbesserungen des Compilers und der Laufzeitumgebung. Die Optimierung der Garbage Collection und des Goroutine-Schedulers hat die Latenzzeiten in hochbelasteten Anwendungen reduziert.

Zum Werkzeug go vet wurden neue Prüfungen hinzugefügt. Sie helfen, potenzielle Probleme mit Schleifen und der falschen Verwendung von Struktur-Tags zu finden.



Fazit



Go 1.22 ist ein ausgereiftes und durchdachtes Release. Die Korrektur der for-range-Schleife wird Entwicklern tausende Stunden Debugging ersparen, und das neue Paket für Zufallszahlen sowie das verbesserte Routing machen die Sprache noch geeigneter für die Webentwicklung und Systemprogrammierung. Wenn Sie Go in der Produktion verwenden, ist das Update definitiv Ihre Aufmerksamkeit wert.



Die vollständige Liste der Änderungen ist in den offiziellen Release Notes auf der Website golang.org verfügbar.

Empfohlene Bibliotheken