Վերադառնալ
Թողարկվել է Go 1.27-ը. գեներիկ մեթոդներ, JSON v2 և post-quantum գաղտնագրություն
SiTech AI Team2 წთ. საკითხავი

Թողարկվել է Go 1.27-ը. գեներիկ մեթոդներ, JSON v2 և post-quantum գաղտնագրություն

Go-ի թիմը թողարկել է Go 1.27-ը՝ գեներիկ մեթոդներով, ֆունկցիաների տիպերի ավելի լայն ինֆերենսով, փոքր օբյեկտների հիշողության ավելի արագ բաշխմամբ, encoding/json/v2 փաթեթով և ML-DSA post-quantum ստորագրություններով։

Երեք փոփոխություն լեզվում

Go 1.27-ը ավելացնում է գեներիկ մեթոդների աջակցություն։ Թողարկման նշումներում որպես օրինակ բերվում է math/rand/v2-ի Rand տիպը. յուրաքանչյուր ամբողջ թվային տիպի համար առանձին Int32N, Int64N և IntN մեթոդների փոխարեն այժմ կա մեկ գեներիկ մեթոդ՝ N[Int intType](n Int) Int։

Երկրորդ փոփոխությունը. struct-ի լիտերալում բանալին այժմ կարող է լինել այդ տիպի ցանկացած վավեր դաշտի սելեկտոր, ինչը թույլ է տալիս ուղղակիորեն ինիցիալիզացնել ներդրված կամ ներդիր struct-երի դաշտերը — օրինակ՝ Gopher-ի լիտերալում սահմանել ներդրված Habitat-ի Burrow դաշտը։

Երրորդը. ֆունկցիաների տիպի ինֆերենսը ընդհանրացվել է և գործում է վերագրման բոլոր կոնտեքստներում. գեներիկ ֆունկցիաներն այժմ կարելի է օգտագործել առանց բացահայտ տիպային արգումենտների՝ կոմպոզիտ լիտերալներում, տիպի կոնվերտացիաներում և ալիքով ուղարկելիս։

Գործիքներ, հիշողություն և պրոֆիլավորում

go fix-ը ստացել է չորս նոր մոդեռնիզատոր՝ atomictypes, embedlit, slicesbackward և unsafefuncs։ go doc-ն այժմ ընդունում է package@version հարցումներ, օրինակ՝ go doc example.com/[email protected], իսկ go mod tidy-ն ինքնաշխատ կերպով միավորում է go.mod-ի require բլոկները ստանդարտ երկբլոկ կառուցվածքի՝ direct և indirect։

Runtime-ում չափով մասնագիտացված հիշողության բաշխումը մինչև 30 տոկոսով նվազեցնում է 80 բայթից փոքր օբյեկտների բաշխման ծախսը, ինչը, թիմի խոսքով, բաշխումներով ծանրաբեռնված ծրագրերում ընդհանուր արտադրողականությունը բարելավում է մոտ 1 տոկոսով։ runtime/pprof-ի goroutineleak պրոֆիլը այժմ ընդհանուր հասանելի է և հնարավորություն է տալիս ինքնաշխատ հայտնաբերել ընդմիշտ արգելափակված գորուտինները։

Ստանդարտ գրադարան. JSON v2, post-quantum ստորագրություններ, UUID, SIMD

Նոր encoding/json/v2 փաթեթը առաջարկում է JSON-ի բարձր մակարդակի մշակում կարգավորելի պարամետրերով և ավելի խիստ լռելյայն արժեքներով, իսկ encoding/json/jsontext-ը ծածկում է ցածր մակարդակի հոսքային աշխատանքը։ Գոյություն ունեցող encoding/json փաթեթն այժմ հիմնված է v2 իմպլեմենտացիայի վրա՝ ավելի արագ ապակոդավորում ապահովելով և պահպանելով հետհամատեղելիությունը։

crypto/mldsa-ն իրականացնում է FIPS 204-ով սահմանված post-quantum ML-DSA ստորագրության սխեման և ինտեգրված է crypto/x509-ի ու crypto/tls-ի հետ։ Նոր uuid փաթեթը ավելացնում է UUID-ների գեներացիայի և վերլուծության ներկառուցված աջակցություն, simd-ն ու simd/archsimd-ը՝ փորձարարական SIMD աջակցություն, իսկ net/http/httptest-ը ստանում է NewTestServer՝ հիշողության մեջ աշխատող կեղծ ցանց testing/synctest-ի հետ օգտագործելու համար։

Որտեղից ներբեռնել

Բինար արխիվներն ու ինստալյատորները հասանելի են Go-ի ներբեռնման էջում, իսկ փոփոխությունների ամբողջական ցանկը՝ Go 1.27-ի թողարկման նշումներում։ Թիմը նշում է, որ առաջիկա շաբաթներին կհրապարակվեն լրացուցիչ գրառումներ՝ որոշ հնարավորությունների ավելի մանրամասն ներկայացմամբ։

SSiTech

SiTech — AI-ով հզորացված վեբ մշակում

Ստեղծում ենք արագ ու ժամանակակից կայքեր և AI-ը ներդնում իրական բիզնես գործընթացներում։ Ունե՞ք նախագիծ կամ հարց։ Ուրախ կլինենք օգնել։