Programski jezik Go se dosta razvio otkako je prvi put objavljen 2009. godine. Go 1.18 bio je dugo očekivano izdanje zbog svoje podrške za generičke lijekove i mnogih drugih važnih ažuriranja.
Go je izdao verziju 1.18 u ožujku 2022. Evo ukratko najznačajnijih promjena.
Podrška za generičke lijekove
Generičko programiranje omogućuje pisanje funkcija koje mogu prihvatiti i vratiti fleksibilnije tipove.
Prije podrške za generike, morali ste eksplicitno navesti tipove parametara i tipove povrata. Najjednostavniji oblik generika omogućuje vam određivanje neupisanih parametara:
funcPrintAnything[T bilo koji](stvarT) {
fmt.Println(stvar)
}
Ali generici nude mnogo više snage od samo ove. Možete deklarirati gotovo svaku kombinaciju i granularnost tipa za parametre. Na primjer, možete koristiti ograničenja paket za pisanje funkcije koja radi na bilo kojoj vrijednosti koju možete naručiti. To uključuje int, floats i nizove. Evo primjera koji pokazuje sintaksu:
uvoz "golang.org/x/exp/constraints"
funcMaks[T ograničenja. Naručeno](ulazni[]T) (maksT) {
za _, v := unos raspona {
ako v > max {
max = v
}
}
povratak maks
}
Imajte na umu da ova funkcija koristi generički tip, ograničenja. Naručeno, da deklarirate svoj parametar i njegov tip povrata.
Generici osiguravaju nesigurnost i fleksibilnost koda. Generički prijedlog i promjene su kompatibilni unatrag.
Fuzz testiranje
Fuzzing je a tehnika testiranja softvera koji provjerava valjanost programa s pogrešnim, neočekivanim ili nepredvidivim podacima.
The testiranje paket uvodi fuzz u 1.18, tako da da biste definirali fuzz, morate ga uvesti iz standardne biblioteke:
uvoz "testiranje"
Nakon uvoza testiranje paket, možete proslijediti identifikator tipa *testiranje. F na testnu funkciju.
functestFunc(f *testiranje. F) {
// vaš kod
}
Fuzzing generira ulazne parametre za testiranje koda. Ishod fuzziranja je nepredvidiv budući da ulazi nisu korisnički definirani. Fuzzing bi vam trebao pomoći da napišete bolje testove koda i uhvatite greške za koje niste znali da postoje.
Go Workspace Support
Radni prostori su direktoriji sličnog izvornog koda koji čine projekt ili veću jedinicu. Radni prostori olakšavaju upravljanje kodom i otklanjanje pogrešaka grupiranjem sličnog koda na temelju funkcionalnosti.
Uobičajeno, Go projekte dijelite na izvorni kod (src) i izvršne datoteke (kantu). Go alatni lanac izgrađuje izvorni kod iz prvog u izvršne datoteke u drugom. Go radni prostori omogućuju razvojnim programerima rad s više radnih prostora koristeći Go module s određenim glavnim modulom.
Naredba za kreiranje radnog prostora je:
$ idi raditi <naredba>
Koristiti raditi naredba s podnaredbama poput:
- u tome → stvara radni prostor u navedenom direktoriju.
- koristiti → dodaje novi modul u go.work, datoteku radnog prostora go.
- Uredi → uređuje datoteku radnog prostora go.
- sinkronizirati → sinkronizira ovisnosti s popisa izgradnje na module radnog prostora.
Uključivanje radnih prostora za rad povećalo bi produktivnost kako je planirano u razvoju jezika.
Poboljšanja performansi
Ići verzija 1.18 sada podržava ARM64 Apple M1 i 64-bitni PowerPC u konvenciji ABI pozivanja. To rezultira povećanjem od 10% u performansama procesora za korisnike ovih uređaja.
Deklarirane i neiskorištene varijable u funkcijama sada se bilježe kao pogreške pri kompilaciji programa.
The idi graditi naredba, zajedno s drugim povezanim naredbama, podržava -asan zastavicu, koja podržava interoperabilnost s C/C++. To će pomoći Go programerima da koriste Go programe s C i C++ programima.
Ostala važna ažuriranja
The idi uzmi naredba više ne instalira pakete u modu svjesnom modula, što je velika promjena u odnosu na to kada ste vi prvi put počeo s Go. The idi instaliraj naredba zamjenjuje dobiti za prilagodbu ovisnosti modula u radnim prostorima.
Budući da provjera tipa sada obrađuje generičke, poruke o pogrešci mogu se zabilježiti drugačije nego u prethodnim verzijama.
Vrijeme potrebno za prevođenje programa može biti sporije u 1.18. Ali to neće utjecati na vrijeme izvršenja nakon što Go kompajlira vaš program.
Sve pojedinosti o svim najnovijim promjenama možete pronaći u bilješkama o izdanju za Idi 1.18.
Go 1.18 ima nekoliko različitih dodataka
Koristeći Go 1.18, sada možete pisati generički kod, učinkovito testirati pomoću fuzziranja i prebacivati se između Go modula pomoću radnih prostora. Možete čak napisati kod koji radi zajedno s C i C++ programima.
Je li Golang danas vrijedan učenja?
Pročitajte dalje
Povezane teme
- Programiranje
- Programiranje
- Programski jezici
O autoru
Pretplatite se na naše obavijesti
Pridružite se našem biltenu za tehničke savjete, recenzije, besplatne e-knjige i ekskluzivne ponude!
Kliknite ovdje za pretplatu