{"id":121950,"date":"2025-02-15T14:22:29","date_gmt":"2025-02-15T12:22:29","guid":{"rendered":"https:\/\/prohoster.info\/blog\/novosti-interneta\/go-1-24"},"modified":"2025-02-15T14:22:29","modified_gmt":"2025-02-15T12:22:29","slug":"go-1-24","status":"publish","type":"post","link":"https:\/\/prohoster.info\/et\/blog\/news\/go-1-24","title":{"rendered":"Go 1.24","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><a rel=\"nofollow\" href=\"https:\/\/www.linux.org.ru\/images\/21754\/original.png\" itemprop=\"contentURL\">            <img decoding=\"async\" alt=\"Go 1.24\" src=\"\/wp-content\/uploads\/2025\/02\/6d6299421d83951d055782658814425f.jpg\" style=\"display:block;margin: 0 auto;\" \/>                   <\/a>                       <noindex>      <noindex><\/p>\n<p>Go keele uus v\u00e4ljaanne, versioon 1.24, tuleb v\u00e4lja kuus kuud p\u00e4rast <a rel=\"nofollow\" href=\"https:\/\/go.dev\/doc\/go1.23\">Go 1.23<\/a>. Enamik muudatusi puudutab t\u00f6\u00f6riistade ketti, t\u00f6\u00f6aega ja teeke. Nagu alati, tagab v\u00e4ljaanne <a rel=\"nofollow\" href=\"https:\/\/go.dev\/doc\/go1compat\">\u00fchtsuse lubaduse<\/a> Go 1. Arendajad ootavad, et peaaegu k\u00f5ik Go programmid j\u00e4tkavad kompileerimist ja t\u00f6\u00f6tamist nagu varem.<\/p>\n<p><\/noindex><\/noindex>  <\/p>\n<h2>Muutused keeles<\/h2>\n<p> <noindex><\/p>\n<p>Go 1.24 toetab n\u00fc\u00fcd t\u00e4ielikult <a rel=\"nofollow\" href=\"https:\/\/go.dev\/issue\/46477\">\u00fcldisi t\u00fc\u00fcbialiaase<\/a>: t\u00fc\u00fcbialiaas v\u00f5ib olla parameetriseeritud nagu deklareeritud t\u00fc\u00fcp. \u00dcksikasjad <a rel=\"nofollow\" href=\"https:\/\/go.dev\/ref\/spec#Alias_declarations\">keele spetsifikatsioonis<\/a>. Praegu saab v\u00f5imalust v\u00e4lja l\u00fclitada, m\u00e4\u00e4rates GOEXPERIMENT=noaliastypeparams; kuid aliastypeparams valik eemaldatakse Go 1.25-s.<\/p>\n<p><\/noindex> <\/p>\n<h2>T\u00f6\u00f6riistad<\/h2>\n<h3>Go k\u00e4sk<\/h3>\n<p> <noindex><\/p>\n<p>Go moodulid saavad n\u00fc\u00fcd j\u00e4lgida t\u00e4itmise s\u00f5ltuvusi, kasutades t\u00f6\u00f6riista direktiivi go.mod failis. See k\u00f5rvaldab vajaduse eelneva lahenduse j\u00e4rele t\u00f6\u00f6riistade lisamiseks kui t\u00fchjad impordid failis, mida tavaliselt nimetatakse \"tools.go\". Go k\u00e4sk tool saab n\u00fc\u00fcd neid t\u00f6\u00f6riistu k\u00e4ivitada lisaks Go pakettidega kaasasolevatele t\u00f6\u00f6riistadele. Rohkem teavet leiate <a rel=\"nofollow\" href=\"https:\/\/go.dev\/doc\/modules\/managing-dependencies#tools\">dokumentatsioon<\/a>.<\/p>\n<p><\/noindex> <\/p>\n<p>Uus lipp -tool k\u00e4sule go get lisab t\u00f6\u00f6riista direktiivi praegusele moodulile m\u00e4\u00e4ratud pakettide jaoks lisaks n\u00f5udmise direktiivide lisamisele.<\/p>\n<p> <noindex><\/p>\n<p>Uus <a rel=\"nofollow\" href=\"https:\/\/go.dev\/cmd\/go#hdr-Package_lists_and_patterns\">meta-muster t\u00f6\u00f6riist<\/a> viitab k\u00f5igile t\u00f6\u00f6riistadele praeguses moodulis. Seda saab kasutada nende k\u00f5igi v\u00e4rskendamiseks k\u00e4suga go get tool v\u00f5i nende paigaldamiseks oma GOBIN katalooge k\u00e4suga go install tool.<\/p>\n<p><\/noindex> <noindex><\/p>\n<p>K\u00e4ideldavad failid, mis on loodud k\u00e4suga go run ja uued k\u00e4itusk\u00e4skude k\u00e4itumine, salvestatakse n\u00fc\u00fcd Go ehituskausta. See muudab korduvad k\u00e4ivitused suurenenud vahem\u00e4lu t\u00f5ttu. <a rel=\"nofollow\" href=\"https:\/\/go.dev\/issue\/69290\">#69290<\/a>.<\/p>\n<p><\/noindex> <\/p>\n<p>K\u00e4skude go build ja go install n\u00fc\u00fcd aktsepteerivad lippu -json, mis raporteerib ehituse v\u00e4ljundi ja vead struktureeritud JSON-v\u00e4ljundina standardv\u00e4ljundis. Vormingu \u00fcksikasju saab n\u00e4ha kuidas go help buildjson.<\/p>\n<p> <noindex><\/p>\n<p>Lisaks, go test -json raporteerib n\u00fc\u00fcd ehituse v\u00e4ljundi ja vead JSON-is, segatuna testimise tulemuste JSON-iga. Need saab tuvastada uute Action t\u00fc\u00fcpide j\u00e4rgi, kuid kui need p\u00f5hjustavad probleeme integreerimistestide s\u00fcsteemis, saab tagasi l\u00fclitada ehituse tekstiv\u00e4ljundile kaudu <a rel=\"nofollow\" href=\"https:\/\/go.dev\/doc\/godebug\">seade GODEBUG<\/a> gotestjsonbuildtext=1.<\/p>\n<p><\/noindex> <\/p>\n<p>Uus keskkonnamuutuja GOAUTH pakub paindlikku viisi privaatsuse moodulite t\u00f5mbamise autoriseerimiseks. \u00dcksikasju leiate go help goauth.<\/p>\n<p> <noindex><\/p>\n<p>K\u00e4sk go build on n\u00fc\u00fcd installitud <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/runtime\/debug#BuildInfo.Main\">peamise mooduli versioon<\/a> koodatud binaaris, tuginedes tagile ja\/ v\u00f5i versioonihalduss\u00fcsteemi commit'ile. Suffiks +dirty lisatakse, kui on olemas komiteerimata muudatusi. Versioonihalduse teabe v\u00e4listamiseks binaarist saab kasutada lippu -buildvcs=false.<\/p>\n<p><\/noindex> <noindex><\/p>\n<p>Uus <a rel=\"nofollow\" href=\"https:\/\/go.dev\/doc\/godebug\">GODEBUG seadistus<\/a> <a rel=\"nofollow\" href=\"https:\/\/go.dev\/doc\/toolchain#select\">toolchaintrace=1<\/a> saab n\u00fc\u00fcd kasutada t\u00f6\u00f6tlemise protsessi j\u00e4lgimiseks go meeskonna t\u00f6\u00f6riistade valimisel.<\/p>\n<p><\/noindex> <\/p>\n<h3>Cgo<\/h3>\n<p> <noindex><\/p>\n<p>Cgo toetab uusi C-funktsioonide annotatsioone jooksuaegse j\u00f5udluse parandamiseks. #cgo noescape cFunctionName \u00fctleb kompilaatorile, et C-funktsioonile cFunctionName edastatud m\u00e4lu ei kattu. #cgo nocallback cFunctionName \u00fctleb kompilaatorile, et C-funktsioon cFunctionName ei kutsu tagasi \u00fchtegi Go funktsiooni. Rohkem teavet leiate <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/cmd\/cgo#hdr-Optimizing_calls_of_C_code\">cgo dokumentatsioonist<\/a>.<\/p>\n<p><\/noindex> <noindex><\/p>\n<p>Cgo keeldub praegu kompileerimast C-funktsiooni kutsungeid, millel on mitu kokkusobimatut deklareerimist. N\u00e4iteks, kui f on deklareeritud samaaegselt void f(int) ja void f(double), teatab cgo veast hoopis vale kutsesekventsi genereerimise asemel f(0). Uue versiooni puhul on paranenud selle veatingimuse tuvastamine, kui kokkusobimatud deklareerimised ilmnevad erinevates failides. <a rel=\"nofollow\" href=\"https:\/\/go.dev\/issue\/67699\">#67699<\/a>.<\/p>\n<p><\/noindex> <\/p>\n<h3>Objdump<\/h3>\n<p>Objdump t\u00f6\u00f6riist toetab n\u00fc\u00fcd 64-bitise LoongArch (GOARCH=loong64), RISC-V (GOARCH=riscv64) ja S390X (GOARCH=s390x) disassemblingut.<\/p>\n<h3>Vet<\/h3>\n<p>Uus testide anal\u00fcsaator teavitab levinud vigadest testide, fuzzide, kiiruskatsete ja n\u00e4idete deklareerimisel testipakettides, nagu vale nimevorming, vale allkirjad v\u00f5i n\u00e4ited, mis dokumenteerivad mitteeksisteerivaid ID-sid. M\u00f5ned neist vigadest v\u00f5ivad p\u00f5hjustada testide eba\u00f5nnestumist.<\/p>\n<p> <noindex><\/p>\n<p>Praegune printf anal\u00fcsaator teavitab n\u00fc\u00fcd fmt.Printf(s) vormi kutsungite diagnoosimisest, kus s on mittes\u00fcmboolne formaadi string, ilma muude argumentideta. Sellised kutsungid on peaaegu alati vead, kuna s v\u00f5ib sisaldada s\u00fcmbolit %; selle asemel tuleks kasutada fmt.Print. <a rel=\"nofollow\" href=\"https:\/\/go.dev\/issue\/60529\">60529<\/a>. See kontroll annab sageli tulemusi olemasolevas koodis ja seet\u00f5ttu rakendatakse seda ainult siis, kui keele versioon (nagu on m\u00e4\u00e4ratletud go.mod faili go soovitusest v\u00f5i kommentaaridest \/\/go:build) on v\u00e4hemalt Go 1.24, et v\u00e4ltida pideva integreerimise eba\u00f5nnestumist, kui uuendatakse Go 1.24 t\u00f6\u00f6riistadele.<\/p>\n<p><\/noindex> <noindex><\/p>\n<p>Olemasolev anal\u00fcsaator buildtag annab n\u00fc\u00fcd diagnostikat, kui on vale <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/cmd\/go#hdr-Build_constraints\">versiooniga ehitamise piirang<\/a> Go direktiivis \/\/go:build. N\u00e4iteks \/\/go:build go1.23.1 viitab punktversioonile; asemele kasutage \/\/go:build go1.23. <a rel=\"nofollow\" href=\"https:\/\/go.dev\/issue\/64127\">#64127<\/a>.<\/p>\n<p><\/noindex> <noindex><\/p>\n<p>Olemasolev anal\u00fcsaator copylock annab n\u00fc\u00fcd diagnostikat, kui muutuja, mis on deklareeritud kolmes \u201cfor\u201d ts\u00fcklis, nagu for i := iter(); done(i); i = next(i) { \u2026 }, sisaldab sync.Locker, nagu sync.Mutex. <a rel=\"nofollow\" href=\"https:\/\/go.dev\/doc\/go1.22#language\">Go 1.22<\/a> muudab nende ts\u00fcklite k\u00e4itumist, luues igal iteratsioonil uue muutuja, kopeerides eelnevad v\u00e4\u00e4rtused; see kopeerimine ei ole lukudega turvaline. <a rel=\"nofollow\" href=\"https:\/\/go.dev\/issue\/66387\">#66387<\/a>.<\/p>\n<p><\/noindex> <\/p>\n<h3>GOCACHEPROG<\/h3>\n<p> <noindex><\/p>\n<p>Sisemine binaar cmd\/go ja testide vahem\u00e4lu mehhanism v\u00f5ivad n\u00fc\u00fcd olla rakendatud alamprotsessides, mis rakendavad JSON protokolli cmd\/go t\u00f6\u00f6riista ja alamprotsessi vahel, mida nimetatakse keskkonnamuutujaks GOCACHEPROG. Varem oli see GOEXPERIMENT. Protokollide \u00fcksikasju saab vaadata <a rel=\"nofollow\" href=\"https:\/\/go.dev\/cmd\/go\/internal\/cacheprog\">dokumentatsioon<\/a>.<\/p>\n<p><\/noindex> <\/p>\n<h2>Suunamine<\/h2>\n<p> <noindex><\/p>\n<p>Mitmed j\u00f5udlusparendused juhtimisse on v\u00e4hendanud CPU \u00fclepeakaalu keskmiselt 2-3% esinduslike j\u00f5udluste komplekti seas. Tulemused v\u00f5ivad varieeruda rakenduste vahel. Need parendused h\u00f5lmavad uut sisseehitatud map'i Teostust, mis p\u00f5hineb <a rel=\"nofollow\" href=\"https:\/\/abseil.io\/about\/design\/swisstables\">Soomes\u00fcsteemidel<\/a>, v\u00e4ikeste objektide t\u00f5husam m\u00e4lu jaotus ja uus sisemine runtime'i mutex teostus.<\/p>\n<p><\/noindex> <\/p>\n<p>Uus sisseehitatud map'i teostus ja uus sisemine runtime'i mutex v\u00f5ivad olla v\u00e4lja l\u00fclitatud seadetega GOEXPERIMENT=noswissmap ja GOEXPERIMENT=nospinbitmutex vastavalt ehitamise ajal.<\/p>\n<h2>Kompilaator<\/h2>\n<p>Kompilaator keelas juba uute meetodite defineerimise, mille saajate t\u00fc\u00fcpide genereerimine oli cgo, kuid see piirang oli v\u00f5imalik \u00fcletada t\u00fc\u00fcbialiaste kaudu. Go 1.24 annab n\u00fc\u00fcd alati veateate, kui saaja viitab genereeritud cgo t\u00fc\u00fcbile, otse v\u00f5i kaudselt (t\u00fc\u00fcbialiaste kaudu).<\/p>\n<h2>Linkija<\/h2>\n<p>Linkija genereerib n\u00fc\u00fcd GNU ehitustunnuse (ELF NT_GNU_BUILD_ID kirje) ELF platvormidel ja UUID (Mach-O LC_UUID laadimise k\u00e4sk) macOS-is vaikimisi. Ehitustunnus v\u00f5i UUID genereeritakse Go ehitustunnusest. Seda saab v\u00e4lja l\u00fclitada linkija lipuga -B none v\u00f5i \u00fcle kirjutada linkija lipuga -B 0xNNNN koos kasutaja m\u00e4\u00e4ratud kuuekandilise v\u00e4\u00e4rtusega.<\/p>\n<h2>Loodus<\/h2>\n<p> <noindex><\/p>\n<p>Kuidas on m\u00e4rgitud <a rel=\"nofollow\" href=\"https:\/\/go.dev\/doc\/go1.22#bootstrap\">Go 1.22 v\u00e4ljaande m\u00e4rkmetes<\/a>, Go 1.24 n\u00f5uab n\u00fc\u00fcd Go 1.22.6 v\u00f5i uuemat. Arendajad ootavad, et Go 1.26 n\u00f5uab Go 1.24 punktiv\u00e4ljaanne v\u00f5i uuem.<\/p>\n<p><\/noindex> <\/p>\n<h2>Standardsed raamatukogud<\/h2>\n<h3>Ahnkude kaudu juurdep\u00e4\u00e4su failis\u00fcsteemile<\/h3>\n<p> <noindex><\/p>\n<p>Uus t\u00fc\u00fcp <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/os#Root\">os.Root<\/a> k\u00e4tkeb v\u00f5imalust teostada failis\u00fcsteemi operatsioone kindlas kaustas.<\/p>\n<p><\/noindex> <noindex><\/p>\n<p>Funktsioon <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/os#OpenRoot\">os.OpenRoot<\/a> avatakse kaust ja tagastatakse <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/os#Root\">os.Root<\/a>. Meetodid sellel <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/os#Root\">os.Root<\/a> toimivad antud kaustas ja ei luba teed n\u00e4idata asukohtadele v\u00e4ljaspool kausta, sealhulgas need, mis j\u00e4rgivad s\u00fcmboolseid linke kaustast v\u00e4lja. Meetodid os.Root peegeldavad enamikku failis\u00fcsteemi toimingutest, mis on saadaval os paketis, sealhulgas n\u00e4iteks <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/os#Root.Open\">os.Root.Open<\/a>, <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/os#Root.Create\">os.Root.Create<\/a>, <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/os#Root.Mkdir\">os.Root.Mkdir<\/a> ja <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/os#Root.Stat\">os.Root.Stat<\/a>.<\/p>\n<p><\/noindex> <\/p>\n<h3>Uus benchmark funktsioon<\/h3>\n<p> <noindex><\/p>\n<p>Benchmarkid saavad n\u00fc\u00fcd kasutada kiiremat ja v\u00e4hem vigadele kalduvat meetodit <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/testing#B.Loop\">testing.B.Loop<\/a> iteratsioonide teostamiseks, n\u00e4iteks for b.Loop() { \u2026 }, tavap\u00e4raste ts\u00fckliliste struktuuride asemel b.N-le, n\u00e4iteks for range b.N. See pakub kahte olulist eelist:<\/p>\n<p><\/noindex> <\/p>\n<ul>\n<li>Benchmark funktsioon t\u00e4idetakse t\u00e4pselt \u00fcks kord iga -counti korral, seega kulukad seadistamis- ja koristamisetapid teostatakse ainult \u00fcks kord.<\/li>\n<li>Funktsiooni kutsumise parameetrid ja tulemused p\u00fcsivad, takistades kompilaatoril ts\u00fckli sisu t\u00e4ielikku optimeerimist.<\/li>\n<\/ul>\n<h3>Parandatud l\u00f5petajad<\/h3>\n<p> <noindex><\/p>\n<p>Uus funktsioon <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/runtime#AddCleanup\">runtime.AddCleanup<\/a> on l\u00f5petamise mehhanism, mis on paindlikum, efektiivsem ja v\u00e4hem vigadele kalduv kui <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/runtime#SetFinalizer\">runtime.SetFinalizer<\/a>. AddCleanup kinnitab koristamisfunktsiooni objektile, mis k\u00e4ivitatakse kohe, kui objekt muutub k\u00e4tte saamatu. Erinevalt SetFinalizerist, v\u00f5ib mitmeid koristusi kinnitada \u00fchele objektile, koristused v\u00f5ivad olla seotud sisemiste pointeritega, koristused ei tekita tavaliselt lekkimisi, kui objektid moodustavad ts\u00fckli, ja koristused ei edasta objekti v\u00f5i objektide vabastamist, millele see osutab. Uus kood peaks eelistama AddCleanup'i SetFinalizer'ile.<\/p>\n<p><\/noindex> <\/p>\n<h3>Uus weak paket<\/h3>\n<p> <noindex><\/p>\n<p>Uus paket <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/weak\/\">weak<\/a> pakub n\u00f5rku viiteid.<\/p>\n<p><\/noindex> <noindex><\/p>\n<p>N\u00f5rgad viiteid on madala taseme primitivi, mis on ette n\u00e4htud struktuuride loomiseks, mis kasutavad t\u00f5husalt m\u00e4lu, n\u00e4iteks n\u00f5rgad s\u00f5nastikud v\u00e4\u00e4rtuste sidumiseks, kanoniseerimise s\u00f5nastikud milleks iganes, mis ei kuulu <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/unique\/\">unique<\/a>, ja erinevat t\u00fc\u00fcpi vahem\u00e4lu. Nende kasutusjuhtide toetamiseks pakub see v\u00e4ljaanne samuti <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/runtime\/#AddCleanup\">runtime.AddCleanup<\/a> ja <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/maphash\/#Comparable\">maphash.Comparable<\/a>.<\/p>\n<p><\/noindex> <\/p>\n<h3>Uus paket crypto\/mlkem<\/h3>\n<p> <noindex><\/p>\n<p>Uus paket <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/crypto\/mlkem\/\">crypto\/mlkem<\/a> rakendab ML-KEM-768 ja ML-KEM-1024.<\/p>\n<p><\/noindex> <noindex><\/p>\n<p>ML-KEM on post-kvantne v\u00f5tmevahetusmehhanism, varem tuntud kui Kyber ja spetsifitseeritud <a rel=\"nofollow\" href=\"https:\/\/doi.org\/10.6028\/NIST.FIPS.203\">FIPS 203<\/a>.<\/p>\n<p><\/noindex> <\/p>\n<h3>Uued paketid crypto\/hkdf, crypto\/pbkdf2 ja crypto\/sha3<\/h3>\n<p> <noindex><\/p>\n<p>Uus paket <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/crypto\/hkdf\/\">crypto\/hkdf<\/a> rakendab HMAC-p\u00f5hise v\u00f5tme genereerimise funktsiooni \"Extract-and-Expand\" HKDF, nagu on m\u00e4\u00e4ratletud <a rel=\"nofollow\" href=\"https:\/\/www.rfc-editor.org\/rfc\/rfc5869.html\">RFC 5869<\/a>.<\/p>\n<p><\/noindex> <noindex><\/p>\n<p>Uus paket <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/crypto\/pbkdf2\/\">crypto\/pbkdf2<\/a> rakendab paroolip\u00f5hise v\u00f5tme genereerimise funktsiooni PBKDF2, nagu on m\u00e4\u00e4ratletud <a rel=\"nofollow\" href=\"https:\/\/www.rfc-editor.org\/rfc\/rfc8018.html\">RFC 8018<\/a>.<\/p>\n<p><\/noindex> <noindex><\/p>\n<p>Uus paket <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/crypto\/sha3\/\">crypto\/sha3<\/a> rakendab hash-funktsioone SHA-3 ja SHAKE ning cSHAKE laiendatava v\u00e4ljundiga funktsioone, nagu on m\u00e4\u00e4ratletud <a rel=\"nofollow\" href=\"http:\/\/doi.org\/10.6028\/NIST.FIPS.202\">FIPS 202<\/a>.<\/p>\n<p><\/noindex> <\/p>\n<p>K\u00f5ik kolm paketti p\u00f5hinevad varasematel pakettidel golang.org\/x\/crypto\/\u2026<\/p>\n<h3>FIPS 140-3 vastavus<\/h3>\n<p> <noindex><\/p>\n<p>See v\u00e4ljaanne sisaldab <a rel=\"nofollow\" href=\"https:\/\/go.dev\/doc\/security\/fips140\">uut mehanismide komplekti, et tagada FIPS 140-3 vastavus<\/a>.<\/p>\n<p><\/noindex> <\/p>\n<p>Go kr\u00fcptograafiline moodul on komplekt standardteegi sisemisi pakette, mida kasutatakse heaks kiidetud FIPS 140-3 algoritmide rakendamiseks. Rakendused ei vaja muudatusi Go kr\u00fcptograafilise mooduli kasutamiseks heaks kiidetud algoritmidega.<\/p>\n<p> <noindex><\/p>\n<p>Uut keskkonnamuutujat GOFIPS140 saab kasutada Go kr\u00fcptograafilise mooduli versiooni valimiseks ehituses. Uut <a rel=\"nofollow\" href=\"https:\/\/go.dev\/doc\/godebug\">GODEBUG seadistus<\/a> fips140 saab kasutada FIPS 140-3 re\u017eiimi lubamiseks k\u00e4itamise ajal.<\/p>\n<p><\/noindex> <\/p>\n<p>Go 1.24 sisaldab Go kr\u00fcptograafilise mooduli versiooni v1.0.0, mis on praegu testimise all akrediteeritud CMVP labori poolt.<\/p>\n<h3>Uus eksperimentaalne paket testing\/synctest<\/h3>\n<p> <noindex><\/p>\n<p>Uus eksperimentaalne paket <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/testing\/synctest\/\">testing\/synctest<\/a> pakub tuge konkreetse koodi testimisele.<\/p>\n<p><\/noindex> <\/p>\n<ul>\n<li>Funktsioon <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/testing\/synctest\/#Run\">synctest.Run<\/a> k\u00e4ivitab grupp gorutiine isoleeritud \"mullis\". Mullis t\u00f6\u00f6tlevad pakendi funktsioonid <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/time\">time<\/a> t\u00f6\u00f6tlevad vale kellaaegu.<\/li>\n<li>Funktsioonid <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/testing\/synctest#Wait\">synctest.Wait<\/a> ootavad, kuni k\u00f5ik gorutiinid on praeguses mullis blokeeritud.<\/li>\n<\/ul>\n<p>\u00dcksikasju saab n\u00e4ha pakendi dokumentatsioonis.<\/p>\n<p> <noindex><\/p>\n<p>Pakett synctest on eksperimenteerimise staadiumis ja peab olema aktiveeritud INSTALLIDES GOEXPERIMENT=synctest. Paketi API v\u00f5ib tulevastes v\u00e4ljaannetes muutuda. Rohkem \u00fcksikasju on <a rel=\"nofollow\" href=\"https:\/\/go.dev\/issue\/67434\">#67434<\/a> saadaval ja tagasisidet saab anda.<\/p>\n<p><\/noindex> <\/p>\n<h3>Minor muutused raamatukogus<\/h3>\n<h4><a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/archive\/\">archive<\/a><\/h4>\n<p>Teostused (*Writer.AddFS) archive\/zip ja archive\/tar kirjutavad n\u00fc\u00fcd t\u00fchja katalooge jaoks katalooge.<\/p>\n<h4><a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/bytes\/\">bytes<\/a><\/h4>\n<p> <noindex><\/p>\n<p>Pakett <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/bytes\">bytes<\/a> lisab mitmeid funktsioone, mis t\u00f6\u00f6tavad iteratooridega:<\/p>\n<p><\/noindex> <\/p>\n<ul>\n<li><a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/bytes#Lines\">Lines<\/a> tagastab iteratoori ridadele, mis on eraldatud uue reaga, baitide slice'is.<\/li>\n<li><a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/bytes#SplitSeq\">SplitSeq<\/a> tagastab iteratoori k\u00f5igile al slice'idele baitide slice'is, mis on eraldatud eraldajaga.<\/li>\n<li><a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/bytes#SplitAfterSeq\">SplitAfterSeq<\/a> tagastab iteratoori al slice'idele baitide slice'is, mis on eraldatud p\u00e4rast iga eraldaja esinemist.<\/li>\n<li><a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/bytes#FieldsSeq\">FieldsSeq<\/a> tagastab iteratoori al slice'idele baitide slice'is, mis asuvad t\u00fchikute j\u00e4rjestustes, nagu on m\u00e4\u00e4ratletud <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/unicode#IsSpace\">unicode.IsSpace<\/a><\/li>\n<li><a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/bytes#FieldsFuncSeq\">FieldsFuncSeq<\/a> tagastab iteratoori al slice'idele baitide slice'is, mis asuvad Unicode koodipunktide j\u00e4rjestustes, mis vastavad predikaadile.<\/li>\n<\/ul>\n<h4><a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/crypto\/aes\/\">crypto\/aes<\/a><\/h4>\n<p> <noindex><\/p>\n<p>Tagastatud v\u00e4\u00e4rtus <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/crypto\/aes#NewCipher\">NewChipher<\/a> ei implementeeri enam meetodeid NewCTR, NewGCM, NewCBCEncrypter ja NewCBCDecrypter. Need meetodid olid dokumenteerimata ja ei olnud k\u00f5igil arhitektuuridel saadaval. N\u00fc\u00fcd tagastatud v\u00e4\u00e4rtus <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/crypto\/cipher#Block\">Block<\/a> peab olema otseselt edastatud vastavatesse funktsioonidesse <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/crypto\/cipher\/\">crypto\/cipher<\/a>. Hetkel kontrollib crypto\/cipher endiselt neid meetodeid Blocki v\u00e4\u00e4rtustes, isegi kui need ei ole enam standardraamatukogus toetatud.<\/p>\n<p><\/noindex> <\/p>\n<h4><a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/crypto\/cipher\/\">crypto\/cipher<\/a><\/h4>\n<p> <noindex><\/p>\n<p>Uus funktsioon <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/crypto\/cipher#NewGCMWithRandomNonce\">NewGCMWithRandomNonce<\/a> toob tagasi <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/crypto\/cipher#AEAD\">AEAD<\/a>, mis implementerib AES-GCM, genereerides juhusliku \u00fchekordse numbri ajal Seal ja lisades selle kr\u00fcpteeritud teksti algusesse.<\/p>\n<p><\/noindex> <noindex><\/p>\n<p>Rakendamine <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/crypto\/cipher#Stream\">Stream<\/a>, tagastatud <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/crypto\/cipher#NewCTR\">NewCTR<\/a> kasutamisel koos <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/crypto\/aes\/\">crypto\/aes<\/a> on n\u00fc\u00fcd mitu korda kiirem amd64 ja arm64.<\/p>\n<p><\/noindex> <noindex><\/p>\n<p><a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/crypto\/cipher#NewOFB\">NewOFB<\/a>, <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/crypto\/cipher#NewCFBEncrypter\">NewCFBEncrypter<\/a> ja <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/crypto\/cipher#NewCFBDecrypter\">NewCFBDecrypter<\/a> on n\u00fc\u00fcd deklareeritud aegunud. OFB ja CFB re\u017eiimid pole autentitud, mis \u00fcldiselt v\u00f5imaldab aktiivsetel r\u00fcnnakutel manipuleerida ja taastada selget teksti. Rakendustele soovitatakse kasutada <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/crypto\/cipher#AEAD\">AEAD<\/a> selle asemel. Kui autentimata re\u017eiim <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/crypto\/cipher#Stream\">Stream<\/a> on vajalik, v\u00f5ib kasutada <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/crypto\/cipher#NewCTR\">NewCTR<\/a> selle asemel.<\/p>\n<p><\/noindex> <\/p>\n<h4><a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/crypto\/ecdsa\/\">crypto\/ecdsa<\/a><\/h4>\n<p> <noindex><\/p>\n<p><a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/crypto\/ecdsa#PrivateKey.Sign\">PrivateKey.Sign<\/a> loob n\u00fc\u00fcd deterministliku allkirja vastavalt <a rel=\"nofollow\" href=\"https:\/\/www.rfc-editor.org\/rfc\/rfc6979.html\">RFC 6979<\/a>, kui juhuslikkuse allikas on nil.<\/p>\n<p><\/noindex> <\/p>\n<h4><a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/crypto\/md5\/\">crypto\/md5<\/a><\/h4>\n<p> <noindex><\/p>\n<p>Tagastatud v\u00e4\u00e4rtus <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/md5#New\">md5.New<\/a>, implementerib n\u00fc\u00fcd samuti liidese <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/encoding#BinaryAppender\">encoding.BinaryAppender<\/a>.<\/p>\n<p><\/noindex> <\/p>\n<h4><a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/crypto\/rand\/\">crypto\/rand<\/a><\/h4>\n<p> <noindex><\/p>\n<p>Funktsioon <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/crypto\/rand#Read\">Loe<\/a> garantii, et eba\u00f5nnestumisi ei toimu. Kui Read puutub kokku veaga lugemisel <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/crypto\/rand#Reader\">Reader<\/a>, l\u00f5petab programm kindlasti t\u00f6\u00f6. Pange t\u00e4hele, et vaikimisi Reader on dokumenteeritud alati \u00f5nnestuma, seega peaks see muudatus m\u00f5jutama ainult neid programme, mis \u00fcle kirjutavad Readeri muutuja. \u00dcheks erandiks on Linuxi k\u00e4rud, mis on vanemad kui versioon 3.17, kus vaikimisi Reader avab endiselt \/dev\/urandom ja v\u00f5ib eba\u00f5nnestuda.<\/p>\n<p><\/noindex> <\/p>\n<p>Linux 6.11 ja uuel versioonil kasutab Reader n\u00fc\u00fcd s\u00fcsteemikutsungit getrandom vDSO kaudu. See on mitu korda kiirem, tavaliselt v\u00e4ikeste lugemiste jaoks.<\/p>\n<p>OpenBSD-l kasutab Reader n\u00fc\u00fcd arc4random_buf(3).<\/p>\n<p> <noindex><\/p>\n<p>Uus funktsioon <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/crypto\/rand#Text\">Tekst<\/a> v\u00f5ib n\u00fc\u00fcd genereerida kr\u00fcptograafiliselt turvalisi juhuslikke tekstirekke.<\/p>\n<p><\/noindex> <\/p>\n<h4><a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/crypto\/rsa\/\">crypto\/rsa<\/a><\/h4>\n<p> <noindex><\/p>\n<p><a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/crypto\/rsa#GenerateKey\">GenerateKey<\/a> tagastab n\u00fc\u00fcd vea, kui k\u00fcsitakse v\u00f5tit, mille pikkus on alla 1024 bitti. K\u00f5ik meetodid Sign, Verify, Encrypt ja Decrypt tagastavad n\u00fc\u00fcd vea, kui neid kasutatakse alla 1024 bitti suuruse v\u00f5tmega. Sellised v\u00f5tmed on ebausaldusv\u00e4\u00e4rsed ja neid ei tohiks kasutada. <a rel=\"nofollow\" href=\"https:\/\/go.dev\/doc\/godebug\">GODEBUG seadistus<\/a> rsa1024min=0 taastab vana k\u00e4itumise, kuid Go arendajad soovitavad seda teha ainult vajadusel ja ainult testides, n\u00e4iteks lisades faili testis rea \/\/go:debug rsa1024min=0. Uus <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/crypto\/rsa#example-GenerateKey-TestKey\">n\u00e4ide<\/a> GenerateKey pakub lihtsalt kasutatavat standardsest 2024-bitist testv\u00f5tit.<\/p>\n<p><\/noindex> <noindex><\/p>\n<p>N\u00fc\u00fcd on ohutu ja t\u00f5husam kutsuda <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/crypto\/rsa#PrivateKey.Precompute\">PrivateKey.Precompute<\/a> kuni <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/crypto\/rsa#PrivateKey.Validate\">PrivateKey.Validate<\/a>. Precompute on n\u00fc\u00fcd kiiremini osaliselt t\u00e4idetud <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/crypto\/rsa#PrecomputedValues\">PrecomputedValues<\/a>, n\u00e4iteks JSON-ist v\u00f5tme v\u00e4ljav\u00f5tmisel.<\/p>\n<p><\/noindex> <noindex><\/p>\n<p>Pakett l\u00fckkab n\u00fc\u00fcd tagasi rohkem vale v\u00f5tmeid, isegi kui Validate ei ole kutsutud, ja <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/crypto\/rsa#GenerateKey\">GenerateKey<\/a> n\u00fc\u00fcd v\u00f5ib tagastada uusi vigu katkisest juhuslikkuse allikast. Alad <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/crypto\/rsa#PrivateKey.Primes\">Primes<\/a> ja <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/crypto\/rsa#PrivateKey.Precomputed\">Precomputed<\/a> struktuurid <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/crypto\/rsa#PrivateKey\">PrivateKey<\/a> kasutatakse ja valideeritakse n\u00fc\u00fcd isegi siis, kui m\u00f5ned v\u00e4\u00e4rtused puuduvad. Samuti on tehtud muudatusi crypto\/x509 RSA v\u00f5tmete parsimise ja v\u00e4ljav\u00f5tmise osas, nagu allpool kirjeldatud.<\/p>\n<p><\/noindex> <noindex><\/p>\n<p><a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/crypto\/rsa#SignPKCS1v15\">SignPKCS1v15<\/a> ja <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/crypto\/rsa#VerifyPKCS1v15\">VerifyPKCS1v15<\/a> n\u00fc\u00fcd toetavad SHA-512\/224, SHA-512\/256 ja SHA-3.<\/p>\n<p><\/noindex> <noindex><\/p>\n<p><a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/crypto\/rsa#GenerateKey\">GenerateKey<\/a> kasutab n\u00fc\u00fcd veidi teistsugust meetodit privaatse ekspotentiaali genereerimiseks (Carmichael'i funktsioon Eulers'i funktsiooni asemel). Erakordsed rakendused, mis v\u00e4ljastpoolt genereerivad v\u00f5tmeid ainult algarvudest, v\u00f5ivad luua erinevaid, kuid \u00fchilduvaid tulemusi.<\/p>\n<p><\/noindex> <\/p>\n<p>Avalike ja eraklike v\u00f5tmete operatsioonid on n\u00fc\u00fcd wasm-il kuni kaks korda kiirem.<\/p>\n<h3>crypto\/sha*<\/h3>\n<ul>\n<li><a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/crypto\/sha1\/\">crypto\/sha1<\/a>: v\u00e4\u00e4rtus, mida tagastab <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/sha1#New\">sha1.New<\/a> toetab n\u00fc\u00fcd ka liidest <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/encoding#BinaryAppender\">encoding.BinaryAppender<\/a>.<\/li>\n<li><a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/crypto\/sha256\/\">crypto\/sha256<\/a>: v\u00e4\u00e4rtused, mida tagastavad <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/sha256#New\">sha256.New<\/a> ja <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/sha256#New224\">sha256.New224<\/a> toetavad n\u00fc\u00fcd ka liidest <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/encoding#BinaryAppender\">encoding.BinaryAppender<\/a>.<\/li>\n<li><a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/crypto\/sha512\/\">crypto\/sha512<\/a>: v\u00e4\u00e4rtused, mida tagastavad <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/sha512#New\">sha512.New<\/a>, <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/sha512#New384\">sha512.New384<\/a>, <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/sha512#New512_224\">sha512.New512_224<\/a> ja <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/sha512#New512_256\">sha512.New512_256<\/a>, toetavad n\u00fc\u00fcd ka liidest <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/encoding#BinaryAppender\">encoding.BinaryAppender<\/a>.<\/li>\n<\/ul>\n<h4><a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/crypto\/subtle\/\">crypto\/subtle<\/a><\/h4>\n<p> <noindex><\/p>\n<p>Uus funktsioon <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/crypto\/subtle#WithDataIndependentTiming\">WithDataIndependentTiming<\/a> lubab see, mis v\u00f5imaldab kasutajal t\u00e4ita funktsiooni, millel on arhitektuuri spetsiifilised omadused, mis tagavad teatud k\u00e4skude muutumatuse andmete v\u00e4\u00e4rtuse ajas. Seda saab kasutada selleks, et veenduda, et kood, mis on loodud t\u00f6\u00f6tama konstantses ajas, ei ole protsessori tasandi omaduste t\u00f5ttu optimeeritud nii, et see toimiks muutuvates aegades. Praegu kasutab WithDataIndependentTiming bit PSTATE.DIT arm64-l ja ei tee muude arhitektuuride puhul midagi. <a rel=\"nofollow\" href=\"https:\/\/go.dev\/doc\/godebug\">GODEBUG seadistus<\/a> dataindependenttiming=1 lubab DIT re\u017eiimi kogu Go programmile.<\/p>\n<p><\/noindex> <noindex><\/p>\n<p>Kokkuv\u00f5te <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/crypto\/subtle#XORBytes\">XORBytes<\/a> peab kattuma t\u00e4ielikult v\u00f5i mitte midagi sisendiga. Varasem k\u00e4itumine oli vastasel juhul m\u00e4\u00e4ramata, samas kui n\u00fc\u00fcd paneb XORBytes paanikasse.<\/p>\n<p><\/noindex> <\/p>\n<h4><a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/crypto\/tls\/\">crypto\/tls<\/a><\/h4>\n<p> <noindex><\/p>\n<p>TLS server toetab n\u00fc\u00fcd Encrypted Client Hello (ECH). Seda funktsiooni saab lubada t\u00e4ites v\u00e4ljundi <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/crypto\/tls#Config.EncryptedClientHelloKeys\">Config.EncryptedClientHelloKeys<\/a>.<\/p>\n<p><\/noindex> <noindex><\/p>\n<p>Uus post-kvantaalne v\u00f5tmevahetuse mehhanism <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/crypto\/tls#X25519MLKEM768\">X25519MLKEM768<\/a> on n\u00fc\u00fcd toetatud ja lubatud vaikev\u00e4\u00e4rtusena, kui <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/crypto\/tls#Config.CurvePreferences\">Config.CurvePreferences<\/a> on nil. <a rel=\"nofollow\" href=\"https:\/\/go.dev\/doc\/godebug\">GODEBUG seadistus<\/a> tlsmlkem=0 tagastab vaikev\u00e4\u00e4rtuse.<\/p>\n<p><\/noindex> <\/p>\n<p>Eksperimentaalse v\u00f5tmevahetuse X25519Kyber768Draft00 tugi on eemaldatud.<\/p>\n<p> <noindex><\/p>\n<p>V\u00f5tmevahetuse j\u00e4rjekord t\u00f6\u00f6deldakse n\u00fc\u00fcd t\u00e4ielikult crypto\/tls paketi kaudu. J\u00e4rjekord <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/crypto\/tls#Config.CurvePreferences\">Config.CurvePreferences<\/a> ignoreeritakse n\u00fc\u00fcd ja sisu kasutatakse ainult selleks, et m\u00e4\u00e4rata, millised v\u00f5tmevahetused lubada, kui v\u00e4ljund on t\u00e4idetud.<\/p>\n<p><\/noindex> <noindex><\/p>\n<p>Uus v\u00e4li <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/crypto\/tls#ClientHelloInfo.Extensions\">ClientHelloInfo.Extensions<\/a> loetleb Client Hello s\u00f5numis saadud laienduste identifikaatorite nimekirja. See v\u00f5ib olla kasulik TLS-kliendi s\u00f5rmej\u00e4lgede v\u00f5tmiseks.<\/p>\n<p><\/noindex> <\/p>\n<h4><a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/crypto\/x509\/\">crypto\/x509<\/a><\/h4>\n<p> <noindex><\/p>\n<p><a rel=\"nofollow\" href=\"https:\/\/go.dev\/doc\/godebug\">GODEBUG seadistus<\/a> x509sha1 on eemaldatud. <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/crypto\/x509#Certificate.Verify\">Certficicate.Verify<\/a> toetab enam mitte SHA-1 p\u00f5hiseid allkirju.<\/p>\n<p><\/noindex> <noindex><\/p>\n<p><a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/crypto\/x509#OID\">OID<\/a> rakendab n\u00fc\u00fcd liideseid <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/encoding#BinaryAppender\">encoding.BinaryAppender<\/a> ja <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/encoding#TextAppender\">encoding.TextAppender<\/a>.<\/p>\n<p><\/noindex> <noindex><\/p>\n<p>Sertifikaadi poliitikate vaikev\u00e4li on muutunud <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/crypto\/x509#Certificate.PolicyIdentifiers\">Certificate.PolicyIdentifiers<\/a> . Tundub, et <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/crypto\/x509#Certificate.Policies\">Certificate.Policies<\/a>. Sertifikaate t\u00f5lgendades t\u00e4idetakse m\u00f5lemad v\u00e4ljad, kuid sertifikaadipoliitikate loomisel v\u00f5etakse need v\u00e4lja Certificate.Policies v\u00e4ljalt asemel Certificate.PolicyIdentifiers. See muudatus v\u00f5ib olla tagastatud <a rel=\"nofollow\" href=\"https:\/\/go.dev\/doc\/godebug\">GODEBUG seadistusega<\/a> x509usepolicies=0.<\/p>\n<p><\/noindex> <noindex><\/p>\n<p><a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/crypto\/x509#CreateCertificate\">CreateCertificate<\/a> genereerib n\u00fc\u00fcd seerianumbri, kasutades RFC 5280 \u00fchilduvat meetodit, edastades malli kaudu <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/crypto\/x509#Certificate.SerialNumber\">Certificate.SerialNumber<\/a> nil, selle asemel, et see eba\u00f5nnestuks.<\/p>\n<p><\/noindex> <noindex><\/p>\n<p><a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/crypto\/x509#Certificate.Verify\">Certificate.Verify<\/a> toetab n\u00fc\u00fcd poliitika valideerimist nagu m\u00e4\u00e4ratletud RFC 5280 ja RFC 9618. Uus v\u00e4li <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/crypto\/x509#VerifyOptions.CertificatePolicies\">VerifyOptions.CertificatePolicies<\/a> v\u00f5ib seadistada vastuv\u00f5etavaks poliitikate kogumikuks <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/crypto\/x509#OID\">OIDs<\/a>. Ainult kehtivad poliitikagraafidega sertifikaadiketid tagastatakse <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/crypto\/x509#Certificate.Verify\">Certificate.Verify<\/a>.<\/p>\n<p><\/noindex> <noindex><\/p>\n<p><a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/crypto\/x509#MarshalPKCS8PrivateKey\">MarshalPKCS8PrivateKey<\/a> n\u00fc\u00fcd tagastab vea asemel vale RSA-v\u00f5tme ekstraktsiooni. (<a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/crypto\/x509#MarshalPKCS1PrivateKey\">MarshalPKCS1PrivateKey<\/a> ei tagasta viga ja selle k\u00e4itumine vale v\u00f5tmete korral j\u00e4\u00e4b endiselt m\u00e4\u00e4ramatuks.)<\/p>\n<p><\/noindex> <noindex><\/p>\n<p><a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/crypto\/x509#ParsePKCS1PrivateKey\">ParsePKCS1PrivateKey<\/a> ja <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/crypto\/x509#ParsePKCS8PrivateKey\">ParsePKCS8PrivateKey<\/a> kasutavad n\u00fc\u00fcd ja valideerivad kodeeritud CRT v\u00e4\u00e4rtusi, seega v\u00f5ivad nad tagasi l\u00fckata vale RSA-v\u00f5tmed, mis olid varem aktsepteeritud. Kasutades <a rel=\"nofollow\" href=\"https:\/\/go.dev\/doc\/godebug\">GODEBUG seadistust<\/a> x509rsacrt=0 tagastab CRT v\u00e4\u00e4rtuste \u00fcmberarvutamise.<\/p>\n<p><\/noindex> <\/p>\n<h4><a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/debug\/elf\/\">debug\/elf<\/a><\/h4>\n<p> <noindex><\/p>\n<p>Pakett <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/debug\/elf\">debug\/elf<\/a> lisab toetuse s\u00fcmbolite versioonide t\u00f6\u00f6tlemiseks d\u00fcnaamilistes ELF-failides (Executable and Linkable Format). Uus meetod <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/debug\/elf#File.DynamicVersions\">File.DynamicVersions<\/a> tagastab d\u00fcnaamiliste versioonide nimekirja, mis on m\u00e4\u00e4ratud ELF-failis. Uus meetod <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/debug\/elf#File.DynamicVersionNeeds\">File.DynamicVersionNeeds<\/a> tagastab d\u00fcnaamiliste versioonide nimekirja, mida see ELF-fail vajab ja mis on m\u00e4\u00e4ratletud teistes ELF-objektides. L\u00f5puks uued v\u00e4hi <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/debug\/elf#Symbol\">Symbol.HasVersion<\/a> ja <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/debug\/elf#Symbol\">Symbol.VersionIndex<\/a> n\u00e4itavad s\u00fcmboli versiooni.<\/p>\n<p><\/noindex> <\/p>\n<h4><a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/encoding\/\">encoding<\/a><\/h4>\n<p> <noindex><\/p>\n<p>Kaks uut liidest <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/encoding#TextAppender\">TextAppender<\/a> ja <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/encoding#BinaryAppender\">BinaryAppender<\/a> on tutvustatud tekstilise v\u00f5i binaarse esitusviisi lisamiseks objekti bajtt\u00fckkide hulka. Need liidesed pakuvad samu funktsioone nagu <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/encoding#TextMarshaler\">TextMarshaler<\/a> ja <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/encoding#BinaryMarshaler\">BinaryMarshaler<\/a>, kuid selle asemel, et iga kord uut bajtt\u00fckki reserveerida, lisavad nad andmed otse olemasolevasse bajtt\u00fcki. Need liidesed on n\u00fc\u00fcd rakendatud standardteegi liikmetes, mis juba rakendavad TextMarshaler ja\/v\u00f5i BinaryMarshaler.<\/p>\n<p><\/noindex> <\/p>\n<h4><a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/encoding\/json\/\">encoding\/json<\/a><\/h4>\n<p> <noindex><\/p>\n<p>Koostamisel struktuuri v\u00e4lja uue omitzero valikuga struktuuri v\u00e4lja silti hakatakse vahele j\u00e4tma, kui selle v\u00e4\u00e4rtus on null. Kui v\u00e4lja t\u00fc\u00fcp sisaldab meetodit IsZero() bool, kasutatakse seda, et m\u00e4\u00e4rata, kas v\u00e4\u00e4rtus on null. Vastasel juhul on see v\u00e4\u00e4rtus null, kui see <a rel=\"nofollow\" href=\"https:\/\/go.dev\/ref\/spec#The_zero_value\">on selle t\u00fc\u00fcbi nullv\u00e4\u00e4rtus<\/a>. Omitszero v\u00e4lja silt on puhtam ja v\u00e4hem vigu tekitav kui omitempty, kui soov on vahele j\u00e4tta nullv\u00e4\u00e4rtused. Eelk\u00f5ige, erinevalt omitempty'ist, j\u00e4tab omitzero vahele nullid <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/time#Time\">time.Time<\/a> v\u00e4\u00e4rtused, mis on sage probleemide allikas.<\/p>\n<p><\/noindex> <\/p>\n<p>Kui m\u00f5lemad omitempty ja omitzero on m\u00e4\u00e4ratud, j\u00e4\u00e4b v\u00e4li vahele, kui v\u00e4\u00e4rtus on t\u00fchi v\u00f5i null (v\u00f5i koos).<\/p>\n<p> <noindex><\/p>\n<p><a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/encoding\/json#UnmarshalTypeError.Field\">UnmarshalTypeError.Field<\/a> sisaldab n\u00fc\u00fcd sisseehitatud struktuure, et anda \u00fcksikasjalikumate veateatiste jaoks.<\/p>\n<p><\/noindex> <\/p>\n<h4><a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/go\/types\/\">go\/types<\/a><\/h4>\n<p>K\u00f5ik andmestruktuurid go\/types, mis avavad paaride meetodite j\u00e4rjestused, nagu Len() int ja At(int) T, omavad n\u00fc\u00fcd ka meetodeid, mis tagastavad iteratoore, v\u00f5imaldades lihtsustada sellist koodi:<\/p>\n<p> params := fn.Type.(*types.Signature).Params() for i := 0; i &lt; params.Len(); i++ {   use(params.At(i)) }   <\/p>\n<p>Selle jaoks:<\/p>\n<p> for param := range fn.Signature().Params().Variables() {   use(param) }   <noindex><\/p>\n<p>Meetodid: <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/go\/types#Interface.EmbeddedTypes\">Interface.EmbeddedTypes<\/a> <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/go\/types#Interface.ExplicitMethods\">Interface.ExplicitMethods<\/a> <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/go\/types#Interface.Methods\">Interface.Methods<\/a> <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/go\/types#MethodSet.Methods\">MethodSet.Methods<\/a> <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/go\/types#Named.Methods\">Named.Methods<\/a> <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/go\/types#Scope.Children\">Scope.Children<\/a> <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/go\/types#Struct.Fields\">Struct.Fields<\/a> <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/go\/types#Tuple.Variables\">Tuple.Variables<\/a> <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/go\/types#TypeList.Types\">TypeList.Types<\/a> <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/go\/types#TypeParamList.TypeParams\">TypeParamList.TypeParams<\/a> <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/go\/types#Union.Terms\">Union.Terms<\/a><\/p>\n<p><\/noindex> <\/p>\n<h4>hash\/*<\/h4>\n<ul>\n<li><a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/hash\/adler32\/\">hash\/adler32<\/a>: v\u00e4\u00e4rtus, mida tagastab <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/hash\/adler32#New\">Uus<\/a>, implementerib n\u00fc\u00fcd samuti liidese <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/encoding#BinaryAppender\">encoding.BinaryAppender<\/a><\/li>\n<li><a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/hash\/crc32\/\">hash\/crc32<\/a>: v\u00e4\u00e4rtused, mida tagastavad <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/hash\/crc32#New\">Uus<\/a> ja <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/hash\/crc32#NewIEEE\">NewIEEE<\/a>, toetavad n\u00fc\u00fcd ka liidest <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/encoding#BinaryAppender\">encoding.BinaryAppender<\/a><\/li>\n<li><a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/hash\/crc64\/\">hash\/crc64<\/a>: v\u00e4\u00e4rtus, mida tagastab <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/hash\/crc64#New\">Uus<\/a>, implementerib n\u00fc\u00fcd samuti liidese <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/encoding#BinaryAppender\">encoding.BinaryAppender<\/a><\/li>\n<li><a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/hash\/fnv\/\">hash\/fnv<\/a>: v\u00e4\u00e4rtused, mida tagastavad <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/hash\/fnv#New32\">New32<\/a> <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/hash\/fnv#New32a\">New32a<\/a> <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/hash\/fnv#New64\">New64<\/a> <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/hash\/fnv#New64a\">New64a<\/a> <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/hash\/fnv#New128\">New128<\/a> ja <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/hash\/fnv#New128a\">New128a<\/a>, toetavad n\u00fc\u00fcd ka liidest <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/encoding#BinaryAppender\">encoding.BinaryAppender<\/a><\/li>\n<li><a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/hash\/maphash\/\">hash\/maphash<\/a>: uued funktsioonid <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/hash\/maphash#Comparable\">Comparable<\/a> ja <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/hash\/maphash#WriteComparable\">WriteComparable<\/a> saavad arvutada mis tahes v\u00e4\u00e4rtuse r\u00e4sist, mida saab v\u00f5rrelda. See v\u00f5imaldab r\u00e4sida k\u00f5ike, mida saab kasutada Go s\u00f5nastiku v\u00f5tmena.<\/li>\n<\/ul>\n<h4><a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/log\/slog\/\">log\/slog<\/a><\/h4>\n<p> <noindex><\/p>\n<p>Uus <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/log\/slog#DiscardHandler\">DiscardHandler<\/a> on t\u00f6\u00f6tleja, mis ei kunagi aktiveeru ja alati loobib oma v\u00e4ljundi.<\/p>\n<p><\/noindex> <noindex><\/p>\n<p><a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/log\/slog#Level\">Tase<\/a> ja <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/log\/slog#LevelVar\">LevelVar<\/a> rakendavad n\u00fc\u00fcd liidese <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/encoding#TextAppender\">encoding.TextAppender<\/a>.<\/p>\n<p><\/noindex> <\/p>\n<h4>math\/*<\/h4>\n<ul>\n<li><a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/math\/big\/\">math\/big<\/a>: <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/math\/big#Float\">Float<\/a>, <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/math\/big#Int\">Int<\/a> ja <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/math\/big#Rat\">Rat<\/a> rakendavad n\u00fc\u00fcd liidese <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/encoding#TextAppender\">encoding.TextAppender<\/a>.<\/li>\n<li><a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/math\/rand\/\">math\/rand<\/a>: vananenud k\u00f5rgetasemelise funktsiooni kutsed <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/math\/rand#Seed\">Seed<\/a> ei oma enam mingit m\u00f5ju. Vanade k\u00e4itumise taastamiseks saab kasutada <a rel=\"nofollow\" href=\"https:\/\/go.dev\/doc\/godebug\">seade GODEBUG<\/a> randseednop=0. Rohkem konteksti leiate <a rel=\"nofollow\" href=\"https:\/\/go.dev\/issue\/67273\">pakkumisest 67273<\/a>.<\/li>\n<li><a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/math\/rand\/v2\/\">math\/rand\/v2<\/a>: <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/math\/rand\/v2#ChaCha8\">ChaCha8<\/a> ja <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/math\/rand\/v2#PCG\">PCG<\/a> rakendavad n\u00fc\u00fcd liidese <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/encoding#BinaryAppender\">encoding.BinaryAppender<\/a>.<\/li>\n<\/ul>\n<h4><a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/net\/\">net<\/a><\/h4>\n<p> <noindex><\/p>\n<p><a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/net#ListenConfig\">ListenCondig<\/a> kasutab n\u00fc\u00fcd MPTCP vaikimisi s\u00fcsteemides, kus see on toetatud (praegu ainult Linux).<\/p>\n<p><\/noindex> <noindex><\/p>\n<p><a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/net#IP\">IP<\/a> rakendavad n\u00fc\u00fcd liidese <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/encoding#TextAppender\">encoding.TextAppender<\/a>.<\/p>\n<p><\/noindex> <\/p>\n<h4><a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/net\/http\/\">net\/http<\/a><\/h4>\n<p> <noindex><\/p>\n<p>Muudatus on tehtud piirangule <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/net\/http#Transport\">Transport<\/a> vastuseks saadud teabe 1xx kohta, vastuseks p\u00e4ringule. Varem katkestas see p\u00e4ringu ja tagastas vea, kui saadi rohkem kui 5 1xx vastust. N\u00fc\u00fcd tagastab see vea ainult siis, kui k\u00f5ik 1xx vastuste kogumaht \u00fcletab konfiguratsiooni seadistuse <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/net\/http#Transport.MaxResponseHeaderBytes\">Transport.MaxResponseHeaderBytes<\/a>.<\/p>\n<p><\/noindex> <noindex><\/p>\n<p>Lisaks, kui p\u00e4ringul on j\u00e4lgimise hook <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/net\/http\/httptrace#ClientTrace.Got1xxResponse\">net\/http\/httptrace.ClientTrace.Got1xxResponse<\/a>, ei ole n\u00fc\u00fcd piire kogu 1xx vastuste arvu osas. Hook Got1xxResponse v\u00f5ib tagastada vea p\u00e4ringu peatamiseks.<\/p>\n<p><\/noindex> <noindex><\/p>\n<p><a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/net\/http#Transport\">Transport<\/a> ja <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/net\/http#Server\">Server<\/a> omavad n\u00fc\u00fcd HTTP2 v\u00e4lja, mis v\u00f5imaldab seadistada HTTP\/2 protokolli seadeid.<\/p>\n<p><\/noindex> <noindex><\/p>\n<p>Uued v\u00e4ljad <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/net\/http#Server.Protocols\">Server.Protocols<\/a> ja <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/net\/http#Transport.Protocols\">Transport.Protocols<\/a> pakuvad lihtsat viisi konfigureerida, milliseid HTTP protokolle server v\u00f5i klient kasutavad.<\/p>\n<p><\/noindex> <\/p>\n<p>Server ja klient saab konfigureerida toetama kr\u00fcpteerimata HTTP\/2 \u00fchendusi.<\/p>\n<p> <noindex><\/p>\n<p>Kui <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/net\/http#Server.Protocols\">Server.Protocols<\/a> sisaldab UnencrypterHTTP2, server aktsepteerib HTTP\/2 \u00fchendusi kr\u00fcpteerimata sadamates. Server v\u00f5ib sama sadama peal aktsepteerida nii HTTP\/1 kui ka kr\u00fcpteerimata HTTP\/2.<\/p>\n<p><\/noindex> <noindex><\/p>\n<p>Kui <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/net\/http#Transport.Protocols\">Transport.Protocols<\/a> sisaldab UnencryptedHTTP2 ja ei sisalda HTTP1, transport kasutab kr\u00fcpteerimata HTTP\/2 aadresside jaoks <a rel=\"nofollow\" href=\"http:\/\/.\">http:\/\/.<\/a> Kui transport on konfigureeritud kasutama nii HTTP\/1 kui ka kr\u00fcpteerimata HTTP\/2, siis kasutatakse HTTP\/1.<\/p>\n<p><\/noindex> <\/p>\n<p>Kr\u00fcpteerimata HTTP\/2 tugi kasutab \"HTTP\/2 eelneva teadlikkuse\" (RFC 9113, jaotis 3.3). Aegunud p\u00e4is \"Upgrade: h2c\" ei ole toetatud.<\/p>\n<h4><a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/net\/netip\/\">net\/netip<\/a><\/h4>\n<p> <noindex><\/p>\n<p><a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/net\/netip#Addr\">Addr<\/a>, <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/net\/netip#AddrPort\">AddrPort<\/a> ja <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/net\/netip#Prefix\">Prefix<\/a> rakendavad n\u00fc\u00fcd liideseid <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/encoding#BinaryAppender\">encoding.BinaryAppender<\/a> ja <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/encoding#TextAppender\">encoding.TextAppender<\/a>.<\/p>\n<p><\/noindex> <\/p>\n<h4><a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/net\/url\/\">net\/url<\/a><\/h4>\n<p> <noindex><\/p>\n<p><a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/net\/url#URL\">URL<\/a> toetab n\u00fc\u00fcd ka liidest <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/encoding#BinaryAppender\">encoding.BinaryAppender<\/a>.<\/p>\n<p><\/noindex> <\/p>\n<h4><a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/os\/user\/\">os\/user<\/a><\/h4>\n<p> <noindex><\/p>\n<p>Windowsis <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/os\/user#Current\">Current<\/a> saab n\u00fc\u00fcd kasutada Windows Nano Serveris. Teostust on uuendatud, et v\u00e4ltida NetApi32 raamatukogust s\u00f5ltuvate funktsioonide kasutamist, mis ei ole Nano Serveris olemas.<\/p>\n<p><\/noindex> <noindex><\/p>\n<p>Windowsis <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/os\/user#Current\">Current<\/a>, <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/os\/user#Lookup\">Lookup<\/a> ja <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/os\/user#LookupId\">LookupId<\/a> toetavad n\u00fc\u00fcd j\u00e4rgmisi sisseehitatud teenusekasutaja konto:<\/p>\n<p><\/noindex> <\/p>\n<ul>\n<li>NT AUTHORITYSYSTEM<\/li>\n<li>NT AUTHORITYLOCAL SERVICE<\/li>\n<li>NT AUTHORITYNETWORK SERVICE<\/li>\n<\/ul>\n<p> <noindex><\/p>\n<p>Windowsis <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/os\/user#Current\">Current<\/a> oli m\u00e4rkimisv\u00e4\u00e4rselt kiirem, kui praegune kasutaja on aeglases domeenis, mis on paljude ettev\u00f5tete kasutajate puhul tavaline. Uue teostuse j\u00f5udlus on n\u00fc\u00fcd millisekundite piires, v\u00f5rreldes varasema teostusega, mis v\u00f5is v\u00f5tta mitu sekundit, isegi minuteid, kuni l\u00f5petamiseni.<\/p>\n<p><\/noindex> <noindex><\/p>\n<p>Windowsis <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/os\/user#Current\">Current<\/a> tagastab n\u00fc\u00fcd protsessi omaniku kasutaja, kui praegune thread esitleb end teise kasutajana. Varem tagastas see t\u00f5rke.<\/p>\n<p><\/noindex> <\/p>\n<h4><a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/regexp\/\">regexp<\/a><\/h4>\n<p> <noindex><\/p>\n<p><a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/regexp#Regexp\">Regexp<\/a> rakendavad n\u00fc\u00fcd liidese <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/encoding#TextAppender\">encoding.TextAdapter<\/a>.<\/p>\n<p><\/noindex> <\/p>\n<h4><a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/runtime\/\">runtime<\/a><\/h4>\n<p> <noindex><\/p>\n<p>Funktsioon <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/runtime#GOROOT\">GOROOT<\/a> on n\u00fc\u00fcd deklareeritud aegunuks. Uues koodis tuleks eelistada s\u00fcsteemiteed binaari \"go\" m\u00e4\u00e4ramiseks ning kasutada go env GOROOT, et m\u00e4\u00e4rata GOROOT.<\/p>\n<p><\/noindex> <\/p>\n<h4><a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/strings\/\">strings<\/a><\/h4>\n<p> <noindex><\/p>\n<p>Pakett <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/strings\">strings<\/a> lisab mitmeid funktsioone iteratsioonide t\u00f6\u00f6tlemiseks:<\/p>\n<p><\/noindex> <\/p>\n<ul>\n<li><a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/strings#Lines\">Lines<\/a> tagastab iteratsiooni ridade kaupa, mis on jagatud uuega.<\/li>\n<li><a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/strings#SplitSeq\">SplitSeq<\/a> tagastab iteratsiooni k\u00f5ikide alamstringide \u00fcle, mis on jagatud eraldajaga.<\/li>\n<li><a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/strings#SplitAfterSeq\">SplitAfterSeq<\/a> tagastab iteratsiooni alamstringide \u00fcle, mis on jagatud p\u00e4rast iga eraldaja esinemist.<\/li>\n<li><a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/strings#FieldsSeq\">FieldsSeq<\/a> tagastab iteratsiooni alamstringide \u00fcle, mis on jagatud t\u00fchikute j\u00e4rjestuste \u00fcmber, nagu m\u00e4\u00e4ratletud<a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/unicode#IsSpace\">unicode.IsSpace<\/a><\/li>\n<li><a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/strings#FieldsFuncSeq\">FieldsFuncSeq<\/a> tagastab iteratsiooni alamstringide \u00fcle, mis on jagatud Unicode'i koodipunktide j\u00e4rjestuste \u00fcmber, mis vastavad predikaadile.<\/li>\n<\/ul>\n<h4><a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/sync\/\">sync<\/a><\/h4>\n<p> <noindex><\/p>\n<p>Rakendamine <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/sync#Map\">sync.Map<\/a> on muudetud, parandades j\u00f5udlust, eelk\u00f5ige s\u00f5naraamatu muudatuste jaoks. N\u00e4iteks on v\u00e4hem t\u00f5en\u00e4oline, et madala konkurentsiga s\u00f5naraamatute muutuste vahel on konflikt, ja enam ei ole vaja koormuse saavutamise aega madala konkurentsiga s\u00f5naraamatust.<\/p>\n<p><\/noindex> <noindex><\/p>\n<p>Kui te kohtate probleeme, seadke GOEXPERIMENT=nosynchashtriemap ehituse ajal, et naasta vana rakenduse juurde ja palun, <a rel=\"nofollow\" href=\"https:\/\/go.dev\/issue\/new\">t\u00e4itke probleemi vorm<\/a>.<\/p>\n<p><\/noindex> <\/p>\n<h4><a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/testing\/\">testimine<\/a><\/h4>\n<p> <noindex><\/p>\n<p>Uued meetodid <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/testing#T.Context\">T.Kontekst<\/a> ja <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/testing#B.Context\">B.Kontekst<\/a> tagastavad konteksti, mis t\u00fckeldatakse p\u00e4rast testi l\u00f5petamist ja enne testipuhastusfunktsioonide t\u00e4itmist.<\/p>\n<p><\/noindex> <noindex><\/p>\n<p>Uued meetodid <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/testing#T.Chdir\">T.Chdir<\/a> ja <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/testing#B.Chdir\">B.Chdir<\/a> v\u00f5ib kasutada t\u00f6\u00f6kausta muutmiseks testi v\u00f5i m\u00f5\u00f5tesessiooni ajal.<\/p>\n<p><\/noindex> <\/p>\n<h4><a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/text\/template\/\">text\/template<\/a><\/h4>\n<p>Mallid toetavad n\u00fc\u00fcd range \u00fcle-funktsiooni ja range \u00fcle-int.<\/p>\n<h4><a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/time\/\">time<\/a><\/h4>\n<p> <noindex><\/p>\n<p><a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/time#Time\">Aeg<\/a> rakendab n\u00fc\u00fcd liideseid <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/encoding#BinaryAppender\">encoding.BinaryAppender<\/a> ja <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/encoding#TextAppender\">encoding.TextAppender<\/a>.<\/p>\n<p><\/noindex> <\/p>\n<h2>Sadulad<\/h2>\n<h3>Linux<\/h3>\n<p> <noindex><\/p>\n<p>Kuidas oli <a rel=\"nofollow\" href=\"https:\/\/go.dev\/doc\/go1.23#linux\">aeti v\u00e4lja<\/a> Go 1.23 v\u00e4ljalasketeates, Go 1.24 n\u00f5uab Linuxi kernelit versioon 3.2 v\u00f5i uuemat.<\/p>\n<p><\/noindex> <\/p>\n<h3>Darwin<\/h3>\n<p>Go 1.24 on viimane v\u00e4ljalase, mis t\u00f6\u00f6tab macOS 11 Big Sur. Go 1.25 n\u00f5uab macOS 12 Monterey v\u00f5i uuemat.<\/p>\n<h3>WebAssembly<\/h3>\n<p>Kompilaatori direktiiv go:wasmexport on lisatud Go programmidesse funktsioonide eksportimiseks WebAssembly hosti.<\/p>\n<p> <noindex><\/p>\n<p>WebAssembly System Interface Preview 1 (GOOS=wasip1 GOARCH=wasm) Go 1.24 toetab Go programmi ehitamist nagu <a rel=\"nofollow\" href=\"https:\/\/github.com\/WebAssembly\/WASI\/blob\/63a46f61052a21bfab75a76558485cf097c0dbba\/legacy\/application-abi.md#current-unstable-abi\">reactor\/library<\/a> kasutades ehituse lippu -buildmode=c-shared.<\/p>\n<p><\/noindex> <noindex><\/p>\n<p>Rohkem t\u00fc\u00fcpe on n\u00fc\u00fcd lubatud argumentide v\u00f5i tulemuste t\u00fc\u00fcpidena go:wasmimport funktsioonide jaoks. Eriti on lubatud bool, string, uintptr ja n\u00e4idikud teatud t\u00fc\u00fcpidele (veel \u00fcksikasju vaadake <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/cmd\/compile#hdr-WebAssembly_Directives\">dokumentatsioon<\/a>), koos 32-bitiste ja 64-bitiste t\u00e4isarvude ja ujukomaarvudega, ning unsafe.Pointer, mis on juba lubatud. Need t\u00fc\u00fcbid on samuti lubatud argumentide v\u00f5i tulemuste t\u00fc\u00fcpidena go:wasmexport funktsioonide jaoks.<\/p>\n<p><\/noindex> <\/p>\n<p>WebAssembly tugifailid on kolitud lib\/wasm kausta miscast\/wasm.<\/p>\n<p>Algne m\u00e4lu suurus on oluliselt v\u00e4henenud, eriti v\u00e4ikeste WebAssembly rakenduste puhul.<\/p>\n<h3>Windows<\/h3>\n<p> <noindex><\/p>\n<p>32-bitine windows\/arm port (GOOS=windows GOARCH=arm) on t\u00e4histatud kui rikutud. \u00dcksikasjad <a rel=\"nofollow\" href=\"https:\/\/go.dev\/issue\/70705\">#70705<\/a><\/p>\n<p><\/noindex><\/p>\n<p>Allikas: <a \ncontent=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/www.linux.org.ru\/news\/development\/17884044\">linux.org.ru<\/a><\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u041d\u043e\u0432\u044b\u0439 \u0432\u044b\u043f\u0443\u0441\u043a \u044f\u0437\u044b\u043a\u0430 Go, \u0432\u0435\u0440\u0441\u0438\u044f 1.24, \u0432\u044b\u0445\u043e\u0434\u0438\u0442 \u0441\u043f\u0443\u0441\u0442\u044f \u0448\u0435\u0441\u0442\u044c \u043c\u0435\u0441\u044f\u0446\u0435\u0432 \u043f\u043e\u0441\u043b\u0435 Go 1.23. \u0411\u043e\u043b\u044c\u0448\u0438\u043d\u0441\u0442\u0432\u043e \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0439 \u0432 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u0442\u0443\u043b\u0447\u0435\u0439\u043d\u0430, \u0440\u0430\u043d\u0442\u0430\u0439\u043c\u0430 \u0438 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a. \u041a\u0430\u043a \u0432\u0441\u0435\u0433\u0434\u0430, \u0440\u0435\u043b\u0438\u0437 \u043e\u0431\u0435\u0441\u043f\u0435\u0447\u0438\u0432\u0430\u0435\u0442 \u043e\u0431\u0435\u0449\u0430\u043d\u0438\u0435 \u0441\u043e\u0432\u043c\u0435\u0441\u0442\u0438\u043c\u043e\u0441\u0442\u0438 Go 1. \u0420\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0438 \u044f\u0437\u044b\u043a\u0430 \u043e\u0436\u0438\u0434\u0430\u044e\u0442, \u0447\u0442\u043e \u043f\u043e\u0447\u0442\u0438 \u0432\u0441\u0435 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u044b Go \u043f\u0440\u043e\u0434\u043e\u043b\u0436\u0430\u0442 \u043a\u043e\u043c\u043f\u0438\u043b\u0438\u0440\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u0438 \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u043a\u0430\u043a \u043f\u0440\u0435\u0436\u0434\u0435. \u0418\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u0432 \u044f\u0437\u044b\u043a\u0435 Go 1.24 \u0442\u0435\u043f\u0435\u0440\u044c \u043f\u043e\u043b\u043d\u043e\u0441\u0442\u044c\u044e \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442 \u043e\u0431\u043e\u0431\u0449\u0451\u043d\u043d\u044b\u0435 \u0430\u043b\u0438\u0430\u0441\u044b \u0442\u0438\u043f\u043e\u0432: \u0430\u043b\u0438\u0430\u0441 [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":121951,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[702],"tags":[],"class_list":["post-121950","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-news"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.1.1 - aioseo.com -->\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/et\/blog\/news\/go-1-24\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.1.1\" \/>\n\t\t<meta property=\"og:locale\" content=\"et_EE\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47Go 1.24 | ProHoster\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/et\/blog\/news\/go-1-24\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2025-02-15T12:22:29+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2025-02-15T12:22:29+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47Go 1.24 | ProHoster","description":"","canonical_url":"https:\/\/prohoster.info\/et\/blog\/news\/go-1-24","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"et_EE","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47Go 1.24 | ProHoster","og:url":"https:\/\/prohoster.info\/et\/blog\/news\/go-1-24","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2025-02-15T12:22:29+00:00","article:modified_time":"2025-02-15T12:22:29+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"121950","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":"default","schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":"2026-01-23 10:38:20","breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2026-01-23 10:38:20","updated":"2026-01-23 10:38:20","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/posts\/121950","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/comments?post=121950"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/posts\/121950\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/media\/121951"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/media?parent=121950"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/categories?post=121950"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/tags?post=121950"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}