Itusilẹ ti ede siseto Go 1.18

Itusilẹ ti ede siseto Go 1.18 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.

Ẹya tuntun ṣe afikun atilẹyin fun awọn iṣẹ jeneriki ati awọn oriṣi (awọn ipilẹṣẹ), pẹlu iranlọwọ ti eyiti olupilẹṣẹ le ṣalaye ati lo awọn iṣẹ ti a ṣe apẹrẹ lati ṣiṣẹ pẹlu awọn oriṣi pupọ ni ẹẹkan. O tun ṣee ṣe lati lo awọn atọkun lati ṣẹda awọn oriṣi apapọ ti o ni awọn iru data lọpọlọpọ. Atilẹyin fun awọn jeneriki jẹ imuse laisi fifọ ibamu sẹhin pẹlu koodu to wa tẹlẹ. // Apapọ ṣeto iye, ṣiṣẹ fun int64 ati float64 orisi func SumIntsOrFloats[K afiwera, V int64 | float64](m map[K]V) V {var s V fun _, v := ibiti o m { s += v } pada s } // Aṣayan miiran pẹlu iru itumọ jeneriki: Iru Nọmba ni wiwo { int64 | float64 } func SumNumbers[K afiwera, Nọmba V](m map[K]V) V {var s V fun _, v := ibiti o m {s += v } pada s }

Awọn ilọsiwaju miiran:

  • Awọn ohun elo fun idanwo koodu iruju ni a ṣepọ sinu ohun elo irinṣẹ boṣewa. Lakoko idanwo iruju, ṣiṣan ti gbogbo awọn akojọpọ laileto ti o ṣeeṣe ti data igbewọle ti wa ni ipilẹṣẹ ati awọn ikuna ti o ṣeeṣe lakoko ṣiṣe wọn ti gbasilẹ. Ti ọna kan ba kọlu tabi ko baamu esi ti a reti, lẹhinna ihuwasi yii ṣee ṣe gaan lati tọka kokoro tabi ailagbara kan.
  • Atilẹyin ti a ṣafikun fun awọn aaye iṣẹ-ọpọlọpọ-modular, gbigba ọ laaye lati ṣiṣẹ awọn aṣẹ lori awọn modulu lọpọlọpọ ni ẹẹkan, gbigba ọ laaye lati kọ ni nigbakannaa ati ṣiṣẹ koodu ni awọn modulu pupọ.
  • Awọn iṣapeye iṣẹ ṣiṣe pataki ni a ti ṣe fun awọn eto ti o da lori Apple M1, ARM64 ati awọn ilana PowerPC64. Ṣiṣẹ agbara lati lo awọn iforukọsilẹ dipo akopọ lati kọja awọn ariyanjiyan si awọn iṣẹ ati da abajade pada. Imudara sisipo laini ti awọn losiwajulosehin nipasẹ alakojọ. Ṣiṣayẹwo iru ninu olupilẹṣẹ ti jẹ atunṣe patapata. Diẹ ninu awọn idanwo fihan ilosoke 20% ni iṣẹ koodu ni akawe si itusilẹ iṣaaju, ṣugbọn akopọ funrararẹ gba to 15% to gun.
  • Ni akoko asiko, ṣiṣe ti ipadabọ iranti ominira pada si ẹrọ iṣẹ ti pọ si ati pe iṣẹ-ṣiṣe ti ikojọpọ idoti ti ni ilọsiwaju, ihuwasi eyiti o ti di asọtẹlẹ diẹ sii.
  • Nẹtiwọọki tuntun/netip ati yokokoro/buildinfo ti ṣafikun si ile-ikawe boṣewa. Atilẹyin fun TLS 1.0 ati 1.1 jẹ alaabo nipasẹ aiyipada ni koodu alabara. Module crypto/x509 ti da awọn iwe-ẹri ṣiṣiṣẹ duro nipa lilo hash SHA-1.
  • Awọn ibeere fun agbegbe ni Lainos ti dide; lati ṣiṣẹ, o nilo bayi lati ni ekuro Linux ti o kere ju ẹya 2.6.32. Ninu itusilẹ atẹle, awọn iyipada ti o jọra ni a nireti fun FreeBSD (atilẹyin fun ẹka FreeBSD 11.x yoo dawọ duro) ati pe o kere ju FreeBSD 12.2 yoo nilo lati ṣiṣẹ.

orisun: opennet.ru

Fi ọrọìwòye kun