Go 1.18 Beta 1 introduceert ondersteuning voor generieke programmering met behulp van typeparameters, een langverwachte functie. Go 1.18 is nu beschikbaar als bètaversie met langverwachte generieke mogelijkheden, de belangrijkste wijziging in de programmeertaal sinds de release van Go 1.0 in 2012.

Go 1.18 Beta 1 is de eerste preview-release van de door Google ontwikkelde open source-taal die ondersteuning biedt voor generieke code met behulp van geparametriseerde typen. Generiek programmeren is een verbetering die het mogelijk maakt om functies en datastructuren in een generieke vorm weer te geven, waarbij typen buiten beschouwing worden gelaten. Generics kunnen bouwstenen bieden om code te delen en het gemakkelijker maken om programma’s te bouwen.

In een blogpost waarschuwde het Go-team dat het bij elke belangrijke nieuwe functie gebruikelijk was dat gebruikers nieuwe bugs ontdekten; generics zullen naar verwachting geen uitzondering op deze regel zijn. Ontwikkelaars wordt geadviseerd om nieuwe generics met de nodige voorzichtigheid te benaderen. Bovendien is ondersteuning voor bepaalde subtiele gevallen, zoals specifieke soorten recursieve generieke typen, uitgesteld tot toekomstige releases.

Desalniettemin waren sommige early adopters “best tevreden”, zei het team. Er is een korte tutorial gepubliceerd over aan de slag gaan met generics. Hoewel Go interface-types had, een vorm van generieke programmering, ontbrak het aan wat Go-ontwikkelaars van generics wilden, volgens een blogpost van juli 2019. Voorstanders van Go-generics hebben bijvoorbeeld gezocht naar vaardigheden zoals het kunnen schrijven van functies Reversezonder zich zorgen te maken over het elementtype van een segment.

De Go 1.18-bèta is toegankelijk via go.dev en wordt aangehaald als een “instabiele” release. Go 1.18 moet in februari 2022 in productie worden genomen. Release-opmerkingen zijn te vinden op tip.golang.org. Ook in Go 1.18:

  • Er wordt ingebouwde ondersteuning geboden voor het schrijven van op fuzzing gebaseerde tests, om invoer te vinden die ervoor zorgt dat een programma crasht of ongeldige antwoorden retourneert.
  • Met een Go-werkruimtemodus kunnen ontwikkelaars met meerdere Go-modules tegelijk werken, wat belangrijk is voor grotere projecten.
  • Een uitgebreide go version -mopdracht legt nu builddetails vast, zoals compilervlaggen.
  • Met een GOAMD64-omgevingsvariabele kunnen gebruikers een van de vier versies van de AMD64-architectuur selecteren.
  • De Windows/Arm- en Windows/Arm64-poorten ondersteunen nu niet-coöperatieve pre-emption, waardoor deze mogelijkheid naar alle vier de Windows-poorten wordt gebracht en hopelijk subtiele bugs worden aangepakt die optreden bij het aanroepen van Win32-functies die gedurende langere tijd blokkeren.
  • De garbage collector omvat nu niet-heapbronnen van GC-werk bij het bepalen hoe vaak het moet worden uitgevoerd. Dit maakt GC-overhead voorspelbaarder wanneer deze bronnen significant zijn.

Go 1.17 werd uitgebracht in augustus. Go is waarschijnlijk het best bekend vanwege zijn gebruik bij de ontwikkeling van het Docker-containersysteem en is ontworpen als een eenvoudige, gemakkelijk te leren programmeertaal met sterke ondersteuning voor gelijktijdigheid.

 

Bron | Copyright © 2021 IDG Communications, Inc.