Go-ohjelmointikieli on kehittynyt paljon sen jälkeen, kun se julkaistiin ensimmäisen kerran vuonna 2009. Go 1.18 oli erittäin odotettu julkaisu, koska se tukee geneerisiä tuotteita ja monia muita tärkeitä päivityksiä.

Go julkaisi version 1.18 maaliskuussa 2022. Tässä on alhainen tiedot merkittävimmistä muutoksista.

Tuki geneerisille tuotteille

Yleisohjelmoinnin avulla voit kirjoittaa toimintoja, jotka voivat hyväksyä ja palauttaa joustavampia tyyppejä.

Ennen geneeristen tuotteiden tukemista sinun oli ilmoitettava parametrityypit ja palautustyypit. Yleisin yksinkertaisin muoto mahdollistaa kirjoittamattomien parametrien määrittämisen:

funcTulosta mitä tahansa[T tahansa](asiaT) {
fmt.Println(asia)
}

Mutta geneeriset lääkkeet tarjoavat paljon enemmän tehoa kuin tämä. Voit ilmoittaa lähes minkä tahansa tyypin yhdistelmän ja tarkkuuden parametreille. Voit käyttää esimerkiksi rajoituksia paketti kirjoittaaksesi funktion, joka toimii millä tahansa arvolla, jonka voit tilata. Tämä sisältää int, floats ja strings. Tässä on esimerkki, joka havainnollistaa syntaksia:

tuonti "golang.org/x/exp/constraints"

funcMax[T rajoitukset. tilattu](syöttö[]T) (maxT) {
for _, v := alueen syöte {
jos v > max {
max = v
}
}

palata max
}

Huomaa, että tämä toiminto käyttää yleistä tyyppiä, rajoituksia. Tilattu, ilmoittaaksesi sen parametrin ja palautustyypin.

Generics tarjoaa epävarmuutta ja joustavuutta koodiin. Generics-ehdotus ja muutokset ovat yhteensopivia taaksepäin.

Fuzz-testaus

Fuzzing on a ohjelmistojen testaustekniikka joka vahvistaa ohjelman virheellisillä, odottamattomilla tai arvaamattomilla tiedoilla.

The testaus paketti esittelee fuzzingin 1.18:ssa, joten fuzzin määrittelemiseksi sinun on tuotava se vakiokirjastosta:

tuonti "testaus"

Tuonnin jälkeen testaus paketti, voit välittää tyypin tunnisteen *testaus. F testitoimintoon.

functestFunc(f *testaus. F) {
// koodisi
}

Fuzzing luo syöteparametrit koodin testausta varten. Fuzzingin lopputulos on arvaamaton, koska syötteet eivät ole käyttäjän määrittämiä. Fuzzingin pitäisi auttaa sinua kirjoittamaan parempia kooditestejä ja havaita virheitä, joiden olemassaolosta et tiennyt.

Siirry työtilan tukeen

Työtilat ovat samankaltaisia ​​lähdekoodin hakemistoja, jotka muodostavat projektin tai suuremman yksikön. Työtilat helpottavat koodin hallintaa ja virheenkorjausta ryhmittelemällä samankaltaisia ​​koodeja toiminnallisuuden perusteella.

Perinteisesti jaat Go-projektit lähdekoodiin (src) ja suoritettavat tiedostot (roskakori). Go-työkaluketju rakentaa lähdekoodin edellisestä suoritettaviksi jälkimmäisessä. Go-työtilojen avulla kehittäjät voivat työskennellä useiden työtilojen kanssa käyttämällä Go-moduuleja tietyn päämoduulin kanssa.

Komento työtilojen luomiseen on:

$ mene töihin <komento>

Käytä tehdä työtä komento alikomennoilla, kuten:

  • sen sisällä → luo työtilan määritettyyn hakemistoon.
  • käyttää → lisää uuden moduulin go.work-tiedostoon, go-työtilatiedostoon.
  • muokata → muokkaa go-työtilatiedostoa.
  • synkronointi → synkronoi riippuvuudet koontiluettelosta työtilamoduuleihin.

Mukaan tulevien työtilojen sisällyttäminen lisäisi tuottavuutta kielen kehittämisessä suunnitellusti.

Suorituskyvyn parannukset

Mennä versio 1.18 tukee nyt ARM64 Apple M1:tä ja 64-bittistä PowerPC: tä ABI-kutsukäytännössä. Tämä johtaa yli 10 %:n lisäykseen suorittimen suorituskyvyssä näiden laitteiden käyttäjille.

Ilmoitetut ja käyttämättömät muuttujat funktioissa kirjataan nyt lokiin ohjelman käännöksen virheinä.

The mene rakentamaan komento tukee muiden vastaavien komentojen kanssa -asan lippu, joka tukee yhteentoimivuutta C/C++:n kanssa. Tämä auttaa Go-kehittäjiä käyttämään Go-ohjelmia C- ja C++-ohjelmien kanssa.

Muita tärkeitä päivityksiä

The Mene hakemaan komento ei enää asenna paketteja moduulitietoisessa tilassa, mikä on suuri muutos verrattuna siihen, kun sinä aloitti ensin Golla. The mene asentamaan komento korvaa saada säätääksesi moduuliriippuvuuksia työtiloissa.

Koska tyypintarkistus käsittelee nyt yleisiä, virheilmoitukset voivat kirjautua eri tavalla kuin aiemmissa versioissa.

Ohjelmien kääntämiseen kuluva aika voi olla hitaampi versiossa 1.18. Tämä ei kuitenkaan vaikuta suoritusaikaan, kun Go on kääntänyt ohjelmasi.

Löydät täydelliset tiedot kaikista viimeisimmistä muutoksista julkaisutiedoista Siirry 1.18.

Go 1.18 sisältää useita erilaisia ​​lisäyksiä

Go 1.18:n avulla voit nyt kirjoittaa yleistä koodia, testata tehokkaasti fuzzin avulla ja vaihtaa Go-moduulien välillä työtilojen avulla. Voit jopa kirjoittaa koodia, joka toimii yhdessä C- ja C++-ohjelmien kanssa.

Onko Golang oppimisen arvoinen tänään?

Lue Seuraava

JaaTweetJaaSähköposti

Liittyvät aiheet

  • Ohjelmointi
  • Ohjelmointi
  • Ohjelmointikielet

Kirjailijasta

MUO: n henkilökunta

tilaa uutiskirjeemme

Liity uutiskirjeemme saadaksesi teknisiä vinkkejä, arvosteluja, ilmaisia ​​e-kirjoja ja eksklusiivisia tarjouksia!

Klikkaa tästä tilataksesi