„Go“ programavimo kalba labai pasikeitė nuo tada, kai pirmą kartą buvo paskelbta 2009 m. „Go 1.18“ buvo labai lauktas leidimas, nes palaiko generinius vaistus ir daugelį kitų svarbių naujinimų.
2022 m. kovo mėn. „Go“ išleido 1.18 versiją. Žemiau pateikiami svarbiausi pakeitimai.
Generics palaikymas
Bendrasis programavimas leidžia rašyti funkcijas, kurios gali priimti ir grąžinti lankstesnius tipus.
Prieš palaikydami bendruosius vaistus, turėjote aiškiai nurodyti parametrų tipus ir grąžinimo tipus. Paprasčiausia generinių žodžių forma leidžia nurodyti neįvestus parametrus:
funcSpausdinti bet ką[T bet](dalykasT) {
fmt.Spausdinti(dalykas)
}
Tačiau generiniai vaistai suteikia daug daugiau galios nei tik tai. Galite deklaruoti beveik bet kokį parametrų derinį ir tipo detalumą. Pavyzdžiui, galite naudoti suvaržymus paketą, norėdami parašyti funkciją, kuri veikia pagal bet kokią vertę, kurią galite užsisakyti. Tai apima int, plūdes ir stygas. Štai pavyzdys, rodantis sintaksę:
importuoti "golang.org/x/exp/constraints "
funcMaks[T apribojimai. Užsakyta](įvestis[]T) (maksT) {
_, v := diapazono įvestis {
jei v > max {
max = v
}
}
grąžinti maks
}
Atminkite, kad ši funkcija naudoja bendrąjį tipą, suvaržymus. Užsakyta, deklaruoti jo parametrą ir grąžinimo tipą.
Generics suteikia kodo neapibrėžtumo ir lankstumo. Generics pasiūlymas ir pakeitimai yra suderinami atgal.
Fuzz testavimas
„Fuzing“ yra a programinės įrangos testavimo technika kuri patvirtina programą su klaidingais, netikėtais arba nenuspėjamais duomenimis.
The testavimas paketas įveda fuzzing 1.18, todėl norėdami apibrėžti fuzz, turite jį importuoti iš standartinės bibliotekos:
importuoti "bandymas"
Importavus testavimas paketą, galite perduoti tipo identifikatorių *testavimas. F į testavimo funkciją.
functestFunc(f * testavimas. F) {
// savo kodą
}
Fuzzing generuoja įvesties parametrus kodui tikrinti. Sumaišymo rezultatas yra nenuspėjamas, nes įvestis nėra vartotojo apibrėžtos. „Fuzzing“ turėtų padėti parašyti geresnius kodo testus ir užfiksuoti klaidas, apie kurias nežinojote.
Go Workspace Support
Darbo sritys yra panašaus šaltinio kodo katalogai, sudarantys projektą arba didesnį vienetą. Darbo sritys palengvina kodo valdymą ir derinimą sugrupuojant panašų kodą pagal funkcijas.
Paprastai Go projektus suskirstote į šaltinio kodą (src) ir vykdomuosius failus (šiukšliadėžė). „Go“ įrankių grandinė sukuria šaltinio kodą iš pirmojo į vykdomuosius failus antrojoje. „Go“ darbo sritys leidžia kūrėjams dirbti su keliomis darbo sritimis naudojant „Go“ modulius su konkrečiu pagrindiniu moduliu.
Darbo erdvių kūrimo komanda yra tokia:
$ eik dirbti <komandą>
Naudoti dirbti komanda su tokiomis subkomandomis kaip:
- init → sukuria darbo sritį nurodytame kataloge.
- naudoti → prideda naują modulį go.work, go darbo srities failą.
- Redaguoti → redaguoja go darbo srities failą.
- sinchronizuoti → sinchronizuoja priklausomybes iš kūrimo sąrašo su darbo srities moduliais.
Darbo vietų įtraukimas padidintų produktyvumą, kaip planuota kuriant kalbą.
Našumo patobulinimai
Eik 1.18 versija dabar palaiko ARM64 Apple M1 ir 64 bitų PowerPC ABI skambinimo sutartyje. Dėl to šių įrenginių naudotojai padidina procesoriaus našumą daugiau nei 10%.
Deklaruoti ir nepanaudoti kintamieji funkcijose dabar registruojami kaip programos kompiliavimo klaidos.
The eik statyti komanda kartu su kitomis susijusiomis komandomis palaiko -asanas vėliavėlė, kuri palaiko sąveiką su C/C++. Tai padės Go kūrėjams naudoti Go programas su C ir C++ programomis.
Kiti svarbūs atnaujinimai
The eik paimk komanda nebediegia paketų modulio žinioje, o tai yra didelis pokytis, palyginti su tuo, kada jūs pirmą kartą pradėjo su Go. The eik įdiegti komanda pakeičia gauti reguliuoti modulių priklausomybes darbo srityse.
Kadangi dabar tipo tikrintuvas tvarko bendruosius duomenis, klaidų pranešimai gali būti registruojami kitaip nei ankstesnėse versijose.
1.18 versijoje programų kompiliavimo laikas gali būti lėtesnis. Tačiau tai neturės įtakos vykdymo laikui, kai „Go“ sukompiliuos jūsų programą.
Išsamią informaciją apie visus naujausius pakeitimus galite rasti leidimo pastabose Eiti 1.18.
„Go 1.18“ turi keletą įvairių priedų
Naudodami „Go 1.18“ dabar galite rašyti bendrąjį kodą, efektyviai tikrinti naudodami „fuzzing“ ir perjungti „Go“ modulius naudodami darbo sritis. Jūs netgi galite parašyti kodą, kuris veikia kartu su C ir C++ programomis.
Ar verta mokytis Golango šiandien?
Skaitykite toliau
Susijusios temos
- Programavimas
- Programavimas
- Programavimo kalbos
Apie autorių
Prenumeruokite mūsų naujienlaiškį
Prisijunkite prie mūsų naujienlaiškio, kad gautumėte techninių patarimų, apžvalgų, nemokamų el. knygų ir išskirtinių pasiūlymų!
Norėdami užsiprenumeruoti, spustelėkite čia