Ale langaj pwogramasyon lage 1.16

Yo prezante liberasyon an nan lang pwogramasyon Go 1.16, ki ap devlope pa Google ak patisipasyon kominote a kòm yon solisyon ibrid ki konbine pèfòmans nan segondè nan lang konpile ak avantaj sa yo nan lang scripting kòm fasilite nan ekri kòd. , vitès nan devlopman ak pwoteksyon erè. Kòd pwojè a distribye anba lisans BSD.

Sentaks Go a baze sou eleman abitye nan lang C ak kèk prete nan lang Python. Lang lan byen kout, men kòd la fasil pou li epi konprann. Kòd Go konpile nan dosye otonòm binè ègzèkutabl ki kouri natif natal san yo pa itilize yon machin vityèl (profilaj, modil debogaj, ak lòt sous-sistèm deteksyon pwoblèm ègzekutabl yo entegre kòm konpozan ègzekutabl), ki pèmèt pou pèfòmans konparab ak pwogram C yo.

Pwojè a okòmansman devlope ak yon je nan pwogram milti-threaded ak operasyon efikas sou sistèm milti-debaz, ki gen ladan bay mwayen nan nivo operatè pou òganize informatique paralèl ak entèraksyon ant metòd paralèl egzekite. Lang lan tou bay pwoteksyon entegre kont blòk memwa ki twò atribye yo epi li bay kapasite pou sèvi ak yon pèseptè fatra.

Nouvo karakteristik kle yo prezante nan lage Go 1.16:

  • Te ajoute pake a entegre, ki bay zouti pou entegre fichye abitrè ak repèrtwar nan pwogram nan. Yo bay yon nouvo "//go: embed" direktiv pou presize dosye yo dwe entegre nan tan konpile. Pou egzanp, espesifye "//go: embed test.txt" nan kòmantè kòd la ak Lè sa a, deklare varyab la "var f embed.FS" ap mennen nan entegre nan dosye a test.txt ak kapasite nan jwenn aksè nan li nan " f” deskriptè. Nan yon fason menm jan an, ou ka entegre fichye ak resous oswa valè endividyèl nan yon sèten kalite ki nesesè pou travay, pou egzanp, jwenn varyab fisèl "s" nan fichye a version.txt, ou ka presize: enpòte _ "embed ” //go: embed version.txt var s string print (yo)
  • Pa default, nouvo sistèm modil la ak sipò vèsyon entegre kounye a obligatwa, ranplase zouti jesyon depandans ki baze sou GOPATH. Varyab anviwònman an GO111MODULE kounye a mete sou "on" pa default ak mòd modil yo itilize kèlkeswa prezans nan yon dosye go.mod nan travay la oswa anyè paran. Nan nouvo mòd nan, bati kòmandman tankou "ale bati" ak "ale tès" pa chanje sa ki nan go.mod ak go.sum, ak "ale enstale" kòmandman an trete agiman vèsyon ("ale enstale example.com/[imèl pwoteje]"). Pou retounen ansyen konpòtman an, chanje GO111MODULE an "oto". Li te note ke 96% nan devlopè yo te deja chanje nan sistèm nan modil nouvo.
  • Linker la te optimize. Pou gwo pwojè, layout se kounye a 20-25% pi vit epi li mande 5-15% mwens memwa.
  • Konpilatè a te ajoute sipò pou ekspansyon fonksyon an liy ak definisyon abreje bouk "pou", valè metòd ak konstriksyon 'type switch'.
  • Te ajoute sipò pou sistèm Apple ekipe ak nouvo chip Apple M1 ARM la. Te ajoute pò netbsd/arm64 ak openbsd/mips64 ak sipò pou NetBSD sou ARM 64-bit ak OpenBSD sou sistèm MIPS64. Te ajoute sipò pou cgo ak mòd "-buildmode = pie" nan pò linux/riscv64 la.
  • Sipò pou mòd konpilasyon x87 sispann (GO386=387). Sipò pou processeurs SSE2 san enstriksyon disponib kounye a atravè mòd lojisyèl "GO386=softfloat".

Anplis de sa, nou ka sonje kòmansman tès liberasyon beta lang Dart 2.12 la, kote yo te estabilize mòd san danje pou itilize valè "Nil" (sekirite nul), ki pral ede evite aksidan ki te koze pa tantativ pou sèvi ak varyab ki gen. valè se endefini epi mete nan "Nil". Mòd la implique ke varyab yo pa ka gen valè nil sof si yo bay yo klèman valè nil la. Mòd la estrikteman respekte kalite varyab, ki pèmèt konpilatè a aplike optimize adisyonèl. Konfòmite tip tcheke nan moman konpile, pou egzanp, si ou eseye bay valè "Nil" nan yon varyab ak yon kalite ki pa vle di eta endefini, tankou "int", yon erè ap parèt.

Sous: opennet.ru

Add nouvo kòmantè