Itusilẹ ti ede siseto Go 1.14

Agbekale idasile ede siseto Lọ 1.14, eyiti Google n ṣ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 awọn anfani ti awọn ede kikọ gẹgẹbi irọrun ti koodu kikọ, iyara idagbasoke ati aabo aṣiṣe. koodu ise agbese pin nipasẹ 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 naa rọrun lati ka ati loye. A ṣe akojọpọ koodu Go sinu awọn adaṣe alakomeji imurasilẹ ti o nṣiṣẹ ni abinibi laisi lilo ẹrọ foju kan (profaili, n ṣatunṣe aṣiṣe, ati awọn ọna ṣiṣe wiwa awọn iṣoro asiko asiko miiran ni a ṣepọ bi asiko isise irinše), eyiti o fun ọ laaye lati ṣaṣeyọri iṣẹ ṣiṣe ni afiwe 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.

akọkọ awọn imotuntunti a ṣafihan ninu itusilẹ Go 1.14:

  • Eto module tuntun ti o wa ninu aṣẹ “lọ” ni a kede pe o ti ṣetan fun lilo gbogbogbo, ṣiṣẹ nipasẹ aiyipada, ati iṣeduro fun iṣakoso igbẹkẹle dipo GOPATH. Eto module tuntun n ṣe ẹya atilẹyin ẹya ti a ṣepọ, awọn agbara ifijiṣẹ package, ati ilọsiwaju iṣakoso igbẹkẹle. Pẹlu awọn modulu, awọn olupilẹṣẹ ko ni so mọ si ṣiṣẹ laarin igi GOPATH kan, o le ṣalaye awọn igbẹkẹle ti ikede ni gbangba, ati ṣẹda awọn ile atunwi.
  • Fi kun atilẹyin fun ifibọ awọn atọkun pẹlu ohun agbekọja ṣeto ti awọn ọna. Awọn ọna lati inu wiwo ti a ṣe sinu le ni awọn orukọ kanna ati awọn ibuwọlu bi awọn ọna ni awọn atọkun to wa tẹlẹ. Awọn ọna ti a sọ ni gbangba jẹ alailẹgbẹ bi iṣaaju.
  • Iṣe ti ikosile “idaduro” ti ni ilọsiwaju, ṣiṣe ni iyara bi pipe iṣẹ ti a da duro taara, gbigba ipaniyan iṣẹ idaduro ni koodu ifaramọ iṣẹ.
  • Asynchronous preemption ti coroutines (goroutines) ti pese - awọn losiwajulosehin ti ko ni awọn ipe iṣẹ ninu le ni bayi ni agbara ja si titiipa oluṣeto tabi idaduro ibẹrẹ ikojọpọ idoti.
  • Iṣiṣẹ ti eto ipin oju-iwe iranti ti ni ilọsiwaju ati pe awọn ariyanjiyan titiipa dinku ni pataki ni awọn atunto pẹlu awọn iye GOMAXPROCS nla. Abajade ti dinku lairi ati pọsi iṣiṣẹ lakoko nigbakanna ti o npinpin awọn bulọọki nla ti iranti.
  • Titiipa ti ni iṣapeye ati pe nọmba awọn iyipada ipo ti dinku nigbati o nṣiṣẹ awọn akoko inu ti a lo ni akoko naa.Lẹhin, akoko.Tick, net.Conn.SetDeadline awọn iṣẹ.
  • Ni aṣẹ lọ, asia “-mod=olutaja” ti ṣiṣẹ nipasẹ aiyipada ti itọsọna olutaja kan ba wa ninu gbongbo, ti a pinnu fun jiṣẹ awọn igbẹkẹle ita ti a so mọ olutaja kan pato. Ṣafikun asia "-mod = moodi" lọtọ lati gbe awọn modulu lati kaṣe module kuku ju lati inu ilana “olutaja”. Ti faili go.mod ba jẹ kika-nikan, asia “-mod=readonly” ti ṣeto nipasẹ aiyipada ti ko ba si itọsọna “olutaja” oke. Fikun "-modfile=faili" asia lati pato yiyan go.mod faili dipo ti ọkan ninu awọn module ká root liana.
  • Ṣafikun oniyipada ayika GOINSECURE, nigbati o ba ṣeto, aṣẹ go ko nilo lilo HTTPS ati ṣiṣayẹwo ijẹrisi fo nigba ikojọpọ awọn modulu taara.
  • Olupilẹṣẹ ti ṣafikun asia “-d=checkptr”, ṣiṣẹ nipasẹ aiyipada, lati ṣayẹwo koodu fun ibamu pẹlu awọn ofin fun lilo ailewu ti ailewu.Pointer.
  • Apo tuntun kan wa ninu ifijiṣẹ elile / maphash pẹlu awọn iṣẹ hash ti kii ṣe cryptographic lati ṣẹda awọn tabili hash fun awọn ilana baiti lainidii tabi awọn okun.
  • Ṣe afikun atilẹyin esiperimenta fun pẹpẹ 64-bit RISC-V lori Lainos.
  • Atilẹyin ti a ṣafikun fun FreeBSD lori awọn eto ARM 64-bit.

orisun: opennet.ru

Fi ọrọìwòye kun