Go 1.22 wurde bereits veröffentlicht. Erfahren Sie mehr über die neuen Funktionen und Verbesserungen

Göland

Go ist eine nebenläufige, kompilierte Programmiersprache mit statischer Typisierung, die von der C-Syntax inspiriert ist.

Die neue Version von Go 1.22, erscheint sechs Monate nach Version 1.21, mit einer Reihe bemerkenswerter Änderungen am Toolset, der Laufzeit, Optimierungsverbesserungen, Compiler-Verbesserungen und Bibliotheken.

Für diejenigen, die Go nicht kennen, muss ich sagen, dass dies der Fall istEs handelt sich um eine Programmiersprache, die von Google entwickelt wird unter Beteiligung der Community als Hybridlösung, die die hohe Leistung kompilierter Sprachen mit Vorteilen wie Skriptsprachen wie einfacher Code-Schreibbarkeit, Entwicklungsgeschwindigkeit und Fehlerschutz verbindet.

Wichtige neue Funktionen von Go 1.22

In dieser neuen Version, die ab Go 1.22 eingeführt wird, werden Highlights hervorgehoben zwei Änderungen in den „for“-SchleifenAls Bisher wurden von einer for-Schleife deklarierte Variablen einmal erstellt und wurden in jeder Iteration aktualisiert. In Go 1.22 erstellt jede Iteration der Schleife neue Variablen um außerdem versehentliche Fehler beim Teilen zu vermeiden Experimentelle Unterstützung (GOEXPERIMENT=rangefunc) für Bereichsfunktionen zu for-Schleifen hinzugefügt, Damit können Sie eine Funktion als Iterator angeben und Ein seit langem bestehendes Problem mit for-Schleifen wurde behoben was dazu führte, dass Coroutine-Aufrufe Schleifenvariablen zwischen Iterationen gemeinsam nutzten. Darüber hinaus können for-Schleifen jetzt ganze Zahlen durchlaufen. Zum Beispiel:

package main import "fmt" func main() { for i := range 10 { fmt.Println(10 - i) } fmt.Println("go1.22 take off!") }

Eine weitere bemerkenswerte Änderung in dieser neuen Version ist die Einführung des Fähigkeit, ein Verzeichnis zu verwenden «Verkäufer« welches die Arbeitsbereichsabhängigkeiten enthält. Nun die Befehle Sie können dieses Verzeichnis verwenden, das mit ` erstellt wirdGeh zur Arbeit, Verkäufer` und wird in Build-Befehlen verwendet wenn ` gesetzt ist-mod` in «Verkäufer«, wobei dies der Standardwert ist, wenn ein Verzeichnis vorhanden ist «Verkäufer» im Arbeitsbereich.

Es ist wichtig zu beachten, dass die Funktionalität von `geh holen` wird außerhalb eines Moduls im Modus nicht mehr unterstützt GOPATH Allerdings werden auch andere Build-Befehle wie geerbt „Go Build“ und „Go Test“. Sie werden auf unbestimmte Zeit weiterhin für ältere GOPATH-Programme arbeiten. Darüber hinaus ist der Befehl `go mod init` wird nicht mehr versuchen, Modulanforderungen aus Konfigurationsdateien anderer zu importieren «„Verkaufen“ (wie Gopkg.lock).

Go 1.22 führt ein neues Paket io/unsicher Dies bietet Funktionen zum Arbeiten mit Zeigern und unsicherem Speicher. Dieses Paket bietet Methoden zum Konvertieren von Zeigern auf und von sicheren und unsicheren Typen sowie zum Durchführen von Speicherkopiervorgängen ohne Grenzprüfung.

Die Arbeiten umfassten weiterhin Optimierungen im Compiler basierend auf den Ergebnissen des pPGO-Code-Profilierung, und ist das Jetzt verwendet der Compiler Devirtualisierungstools, um indirekte Aufrufe zu ersetzen verschiedener Methoden mit erweiterter Inline-Blockausführung. Wenn PGO aktiviert war, verbesserte die zusätzliche Änderung die Leistung der meisten Programme um 2 % bis 14 %.

In der Version von Entscheiden Sie sich für Windows, Programme, die Bibliotheken verknüpfen oder laden Gehen Sie mit gebaut -buildmode=c-archive o -buildmode=c-shared kann jetzt die Event Logging Windows (ETW) API verwenden durch die neuen Pakete Laufzeit/Trace y Tracehook, die das Go-Ereignis-Trace-Sammlungsprotokoll als ETW-Anbieter implementieren.

Von den anderen Änderungen, die auffallen:

  • Der Befehl Testen Sie das Cover Druckt jetzt Abdeckungszusammenfassungen für abgedeckte Pakete aus, für die es keine eigenen Testdateien gibt.
  • os/execwurde die Möglichkeit hinzugefügt, Kontextattribute zu definieren, sodass Sie Werte wie das Arbeitsverzeichnis, Umgebungsvariablen und Eingabe-/Ausgabedateideskriptoren für ausgeführte Befehle festlegen können.
  • Optimierte Speicherverwaltung zur Laufzeit, was bei den meisten Anwendungen zu einer Leistungssteigerung von 1–3 % und einer Reduzierung des Speicherverbrauchs um 1 % führt.
  • El Paquete net/http, die Funktion wurde hinzugefügt CloseIdleConnections an den HTTP-Client, der alle inaktiven Verbindungen schließt, die der Client kürzlich verwendet hat
  • Dem Compiler wurde eine verbesserte experimentelle Implementierung (GOEXPERIMENT=newinliner) des Aufrufeinfügungsmechanismus hinzugefügt, der Heuristiken verwendet, um wichtige Operationen von unwichtigen zu trennen.
  • Paket wurde hinzugefügt » math/rand/v2 » zur Standardbibliothek, die eine konsistentere API bietet und schnellere Algorithmen zur Generierung von Pseudozufallszahlen verwendet.
  • El Paquete net/http.ServeMux Möglichkeit hinzugefügt, Methoden und Masken in Vorlagen anzugeben.

Schließlich, wenn Sie sind daran interessiert, mehr darüber zu erfahren, Sie können die Details überprüfen im folgenden Link.


Schreiben Sie den ersten Kommentar

Hinterlasse einen Kommentar

Ihre E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind markiert mit *

*

*

  1. Verantwortlich für die Daten: Miguel Ángel Gatón
  2. Zweck der Daten: Kontrolle von SPAM, Kommentarverwaltung.
  3. Legitimation: Ihre Zustimmung
  4. Übermittlung der Daten: Die Daten werden nur durch gesetzliche Verpflichtung an Dritte weitergegeben.
  5. Datenspeicherung: Von Occentus Networks (EU) gehostete Datenbank
  6. Rechte: Sie können Ihre Informationen jederzeit einschränken, wiederherstellen und löschen.