Vai a lingua di prugrammazione versione 1.16

A liberazione di a lingua di prugrammazione Go 1.16 hè presentata, chì hè sviluppata da Google cù a participazione di a cumunità cum'è una soluzione hibrida chì combina l'altu rendiment di e lingue compilate cù tali vantaghji di linguaggi di scrittura cum'è facilità di scrittura codice, sviluppu rapidu è prutezzione di errore. U codice di u prugettu hè distribuitu sottu a licenza BSD.

A sintassi di Go hè basatu annantu à l'elementi familiari di a lingua C cù qualchi prestiti da a lingua Python. A lingua hè abbastanza cuncisa, ma u codice hè faciule da leghje è capisce. U codice Go hè compilatu in file eseguibili binari separati chì funzionanu nativamente senza l'usu di una macchina virtuale (profiling, debugging, è altri sottosistemi di rilevazione di prublemi di runtime sò integrati cum'è cumpunenti di runtime), chì permette di ottene prestazioni paragunabili à i prugrammi C.

U prugettu hè inizialmente sviluppatu cun un ochju nantu à a prugrammazione multi-threaded è l'operazione efficiente nantu à i sistemi multi-core, cumprese i mezi implementati à u livellu di l'operatore per l'urganizazione di l'informatica parallela è l'interazzione trà i metudi paralleli. A lingua furnisce ancu una prutezzione integrata contr'à l'overruns di blocchi di memoria allocati è furnisce a capacità di utilizà u cullettore di basura.

Innuvazioni chjave introdutte in a versione Go 1.16:

  • U pacchettu incrustu hè statu aghjuntu, chì furnisce strumenti per incrustà schedarii arbitrarii è cartulari in u prugramma. Una nova direttiva "//go: embed" hè furnita per specificà i fugliali da esse incrustati in tempu di compilazione. Per esempiu, specificà u cummentariu "//go:embed test.txt" in u codice è dichjarà a variàbile "var f embed.FS" cum'è seguitu hà da risultatu in l'incrustazione di u schedariu test.txt è a pussibilità di accede à questu attraversu u descrittore "f". In listessu modu, pudete incrustà i fugliali cù risorse o valori individuali di un certu tipu necessariu per u travagliu, per esempiu, per piglià a variàbile di stringa "s" da u schedariu version.txt, pudete specificà: import _ "embed" // go:embed version.txt var s string print (s)
  • U predeterminatu avà esige l'usu di un novu sistema di moduli cù supportu di versione integrata chì rimpiazza a gestione di dependenza basata in GOPATH. A variabile di l'ambienti GO111MODULE hè ora impostata à "on" per difettu, è u modu di moduli hè utilizatu indipendentemente da a prisenza di un schedariu go.mod in u cartulare di travagliu o parent. In u novu modu, custruite cumandamenti cum'è "go build" è "go test" ùn mudificanu micca u cuntenutu di go.mod è go.sum, mentre chì "vai installà" processa argumenti specifichi di versione ("vai install example.com/[email prutettu]"). Per rinvià u vechju cumpurtamentu, cambia GO111MODULE à "auto". Hè nutatu chì u 96% di i sviluppatori anu digià cambiatu à u novu sistema di moduli.
  • U linker hè stata ottimizzata. Per i grandi prughjetti, u ligame hè avà 20-25% più veloce è richiede 5-15% menu memoria.
  • U compilatore aghjusta u supportu per l'espansione di funzioni in linea cù una definizione accurtata di cicli "per", i valori di metudu è e custruzzioni di "type switch".
  • Aghjunghje supportu per i sistemi Apple equipati cù u novu chip Apple M1 ARM. Aghjunghjite i porti netbsd/arm64 è openbsd/mips64 cù supportu per NetBSD in 64-bit ARM è OpenBSD in sistemi MIPS64. U supportu per u modu cgo è "-buildmode = pie" hè statu aghjuntu à u portu linux/riscv64.
  • U supportu per u modu di compilazione x87 hè statu abbandunatu (GO386 = 387). U supportu per i prucessori senza struzzioni SSE2 hè avà dispunibule via u modu di prugramma "GO386=softfloat".

Inoltre, pudemu nutà l'iniziu di a prova di a versione beta di a lingua Dart 2.12, in quale u modu di salvezza nulu hè statu stabilizatu, chì eviterà i crashes causati da i tentativi di utilizà variabili chì u valore ùn hè micca definitu è ​​stabilitu à Null. U modu implica chì e variàbili ùn ponu micca avè valori indefiniti, salvu ch'elli sò esplicitamente impostati à null. U modu hè strettamente in cunsiderà i tipi di variàbili, chì permette à u compilatore di applicà ottimisazioni supplementari. A cuncordanza di u tipu hè verificata à u tempu di compilazione, per esempiu, se pruvate d'assignà u valore "Null" à una variàbile cù un tipu chì ùn implica micca un statu indeterminatu, cum'è "int", un errore serà visualizatu.

Source: opennet.ru

Add a comment