Itusilẹ ti ede siseto Go 1.16

Itusilẹ ti ede siseto Go 1.16 ti gbekalẹ, eyiti Google ṣe idagbasoke pẹlu ikopa ti agbegbe bi ojutu arabara ti o ṣajọpọ iṣẹ ṣiṣe giga ti awọn ede ti a ṣajọpọ pẹlu iru awọn anfani ti awọn ede kikọ bi irọrun ti koodu kikọ , iyara ti idagbasoke ati aabo aṣiṣe. Koodu ise agbese ti pin labẹ iwe-aṣẹ BSD.

Sintasi Go ti da lori awọn eroja ti o faramọ ti ede C pẹlu diẹ ninu awọn yiya lati ede Python. Ede jẹ ṣoki pupọ, ṣugbọn koodu rọrun lati ka ati loye. A ṣe akojọpọ koodu Go sinu awọn faili ṣiṣe alakomeji imurasilẹ ti o ṣiṣẹ ni abinibi laisi lilo ẹrọ foju kan (profaili, awọn modulu n ṣatunṣe aṣiṣe, ati awọn ọna ṣiṣe wiwa akoko asiko miiran ti wa ni iṣọpọ bi awọn paati asiko asiko), eyiti o fun laaye ni afiwera si awọn eto C.

Ise agbese na ti ni idagbasoke ni ibẹrẹ pẹlu oju si siseto-asapo-pupọ ati iṣiṣẹ daradara lori awọn ọna ṣiṣe-ọpọ-mojuto, pẹlu ipese awọn ọna-ipele oniṣẹ fun siseto iṣiro iṣiro ati ibaraenisepo laarin awọn ọna ti o jọra. Ede naa tun pese aabo ti a ṣe sinu rẹ lodi si awọn bulọọki iranti ti o pin ju ati pese agbara lati lo ikojọpọ idoti.

Awọn ẹya tuntun bọtini ti a ṣafihan ni Go 1.16:

  • Ti ṣafikun package ifibọ, eyiti o pese awọn irinṣẹ fun ifibọ awọn faili lainidii ati awọn ilana sinu eto naa. Ilana titun "//go: ifibọ" ti pese lati ṣe pato awọn faili lati wa ni ifibọ ni akoko akojọpọ. Fun apẹẹrẹ, sisọ “//go: embed test.txt” ninu asọye koodu ati lẹhinna sọ asọye “var f embed.FS” yoo yorisi ifibọ ti faili test.txt ati agbara lati wọle si nipasẹ “” f”apejuwe. Ni ọna ti o jọra, o le fi awọn faili pẹlu awọn orisun tabi awọn iye ẹni kọọkan ti iru kan pataki fun iṣẹ, fun apẹẹrẹ, lati gba “s” okun oniyipada lati faili version.txt, o le pato: gbe wọle _ “fi sabe ” //go: embed version.txt var s string print (s)
  • Nipa aiyipada, eto module tuntun pẹlu atilẹyin ẹya ti a ṣepọ ni a nilo ni bayi, ni rọpo iṣakoso igbẹkẹle-orisun GOPATH. Oniyipada ayika GO111MODULE ti ṣeto bayi si “lori” nipasẹ aiyipada ati pe ipo awọn modulu jẹ lilo laibikita wiwa faili go.mod kan ninu iṣẹ tabi itọsọna obi. Ni ipo tuntun, kọ awọn aṣẹ bii “lọ kọ” ati “lọ idanwo” ko yi awọn akoonu ti go.mod ati go.sum pada, ati “fi sori ẹrọ” awọn ariyanjiyan ẹya awọn ilana aṣẹ (“go fi sori ẹrọ example.com/[imeeli ni idaabobo]"). Lati da ihuwasi atijọ pada, yi GO111MODULE pada si “laifọwọyi”. O ṣe akiyesi pe 96% ti awọn olupilẹṣẹ ti yipada tẹlẹ si eto module tuntun.
  • Asopọmọra ti jẹ iṣapeye. Fun awọn iṣẹ akanṣe nla, iṣeto ni bayi 20-25% yiyara ati nilo iranti 5-15% kere si.
  • Olupilẹṣẹ naa ti ṣafikun atilẹyin fun imugboroja laini ti awọn iṣẹ pẹlu awọn asọye abbreviated ti “fun” awọn losiwajulosehin, awọn iye ọna ati awọn itumọ ti 'iru yipada'.
  • Atilẹyin ti a ṣafikun fun awọn eto Apple ti o ni ipese pẹlu chirún Apple M1 ARM tuntun. Fikun netbsd/arm64 ati openbsd/mips64 ebute oko pẹlu atilẹyin NetBSD lori 64-bit ARM ati OpenBSD lori awọn eto MIPS64. Atilẹyin ti a ṣafikun fun cgo ati ipo “-buildmode=pie” si linux/riscv64 ibudo.
  • Atilẹyin fun ipo akopo x87 ti dawọ duro (GO386=387). Atilẹyin fun awọn ilana ilana SSE2 wa bayi nipasẹ ipo sọfitiwia “GO386=softfloat”.

Ni afikun, a le ṣe akiyesi ibẹrẹ ti idanwo itusilẹ beta ti ede Dart 2.12, ninu eyiti ipo ailewu fun lilo iye “Null” (ailewu asan) ti jẹ iduroṣinṣin, eyiti yoo ṣe iranlọwọ yago fun awọn ipadanu ti o ṣẹlẹ nipasẹ awọn igbiyanju lati lo awọn oniyipada ti wọn iye jẹ aisọye ati ṣeto si “Asan”. Ipo naa tumọ si pe awọn oniyipada ko le ni awọn iye asan ayafi ti wọn ba sọtọ ni kedere iye asan. Ipo muna bọwọ fun awọn oriṣi oniyipada, eyiti ngbanilaaye alakojọ lati lo awọn iṣapeye afikun. Iru ibamu ni a ṣayẹwo ni akoko akopọ, fun apẹẹrẹ, ti o ba gbiyanju lati fi iye “Null” si oniyipada kan pẹlu iru ti ko tumọ si ipo aisọye, gẹgẹbi “int”, aṣiṣe yoo han.

orisun: opennet.ru

Fi ọrọìwòye kun