Programmiersprache Go: Beta zu Go 1.18 führt Generics ein

Viele Jahre hat das Go-Entwicklerteam sowie die Community über das neue Feature diskutiert. Nun ermöglicht die Programmiersprache endlich generische Datentypen.

In Pocket speichern vorlesen Druckansicht 144 Kommentare lesen

(Bild: tomertu/Shutterstock.com)

Lesezeit: 3 Min.
Von
  • Madeleine Domogalla

Für Version 1.18 der ursprünglich von Google entwickelten Programmiersprache Go liegt die erste Beta-Version vor. Die Features stehen somit fest und zum ersten Testen bereit. Das finale Release soll laut Blogbeitrag "in ein paar Monaten" folgen.

Bereits Anfang des Jahres wurde ein Vorschlag zur Änderung der Sprache eingereicht, der Go um die Unterstützung von Typparametern für Typen und Funktionen erweitern und so eine Form der generischen Programmierung ermöglichen sollte. Dieser Vorschlag wird nun offenbar mit der aktuellen Beta zu Go 1.18 umgesetzt. Denn die veröffentlichte Version hat Generics im Gepäck.

Das Go-Entwicklerteam bittet aber um Vorsicht beim Testen der neuen Funktionsweise, da Generics bisher nicht Teil der Programmiersprache waren. Eine Anleitung soll Entwicklerinnen und Entwickler bei den ersten Schritten unterstützen. Ein Video von der GopherCon vergangene Woche stellt die Neuerung vor:

Empfohlener redaktioneller Inhalt

Mit Ihrer Zustimmmung wird hier ein externes YouTube-Video (Google Ireland Limited) geladen.

Ich bin damit einverstanden, dass mir externe Inhalte angezeigt werden. Damit können personenbezogene Daten an Drittplattformen (Google Ireland Limited) übermittelt werden. Mehr dazu in unserer Datenschutzerklärung.

Generische Datentypen sollen Entwicklerinnen und Entwicklern ermöglichen, Code gemeinsam zu nutzen und Programme einfacher zu erstellen. Generische Programmierung erlaubt, Funktionen und Datenstrukturen zu schreiben, bei denen einige Typen erst im späteren Verlauf angegeben werden müssen.

Damit lässt sich eine Funktion schreiben, die auf einem Slice eines beliebigen Datentyps operiert. Der tatsächliche Datentyp wird erst beim Aufruf der Funktion angegeben. Des Weiteren lässt sich eine Datenstruktur definieren, die Werte eines beliebigen Typs speichert, wobei der tatsächlich zu speichernde Typ erst beim Erstellen einer Instanz der Datenstruktur angegeben wird.

Go 1.18 Beta bringt zudem Support für das Schreiben von Fuzzing-basierten Tests. Dadurch sollen automatische Eingaben leichter zu finden sein, die Programme zum Abstürzen bringen oder ungültige Antworten zurückgeben. Darüber hinaus führt das Entwicklerteam einen neuen Go-Workspace-Modus ein, der es Entwicklern ermöglichen soll, mit mehreren Go-Modulen zur gleichen Zeit arbeiten zu können, was offenbar gerade für größere Projekte wichtig ist.

Ebenfalls neu ist der Befehl go version -m, der künftig Build-Details wie Compiler-Flags aufzeichnen soll. Somit kann ein Programm die eigenen Build-Informationen mit debug.ReadBuildInfo abfragen, aber auch von anderen Binärdateien mit dem neuen Paket debug/buildinfo lesen. Laut Blogbeitrag ist die neue Funktionsweise als Grundlage für jedes Werkzeug gedacht, das eine Software-Bill-of-Materials (SBOM) für Go-Binärdateien erstellen muss.

Nähere Informationen zu ersten Beta von Go 1.18 finden sich im Beitrag auf dem offiziellen The-Go-Blog.

Siehe auch:

  • Go bei heise Download

(mdo)