{"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\/novosti-interneta\/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 versioon 1.24 ilmub seis kuud p\u00e4rast <a rel=\"nofollow\" href=\"https:\/\/go.dev\/doc\/go1.23\">Go 1.23<\/a>. Enamik muutusi puudutab t\u00f6\u00f6riistade komplekti, k\u00e4itusaja ja raamatukogude rakendust. Nagu alati, on v\u00e4ljaanne <a rel=\"nofollow\" href=\"https:\/\/go.dev\/doc\/go1compat\">koosk\u00f5la lubadus<\/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>Keeles tehtud muudatused<\/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\">t\u00fc\u00fcpide \u00fcldisi aliasid<\/a>: alias t\u00fc\u00fcp v\u00f5ib olla \u043f\u0430\u0440\u0430\u043c\u0435\u0442rizirovanud nagu deklareeritud t\u00fc\u00fcp. \u00dcksikasjad on <a rel=\"nofollow\" href=\"https:\/\/go.dev\/ref\/spec#Alias_declarations\">keele spetsifikatsioonis<\/a>. Praegu on funktsioon v\u00f5imalik v\u00e4lja l\u00fclitada, seadistades 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\u00e4idetavaid s\u00f5ltuvusi, kasutades t\u00f6\u00f6riista juhist failis go.mod. See k\u00f5rvaldab vajaduse eelneva t\u00f6\u00f6riista lisamise lahenduse j\u00e4rele, kus t\u00f6\u00f6riistad on t\u00fchjade impordina failis, mida tavaliselt nimetatakse \"tools.go\". Go t\u00f6\u00f6riista k\u00e4sk saab n\u00fc\u00fcd lisaks Go-ga kaasas olevatele t\u00f6\u00f6riistadele k\u00e4ivitada neid t\u00f6\u00f6riistu. Rohkem teavet saab vaadata <a rel=\"nofollow\" href=\"https:\/\/go.dev\/doc\/modules\/managing-dependencies#tools\">dokumentatsioonis<\/a>.<\/p>\n<p><\/noindex> <\/p>\n<p>Uus -tool lipp go get jaoks lisab t\u00f6\u00f6riista direktiivi praegusesse moodulisse 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 tool<\/a> viitab k\u00f5igile t\u00f6\u00f6riistadele praeguses moodulis. Seda saab kasutada nende k\u00f5igi uuendamiseks l\u00e4bi go get tool v\u00f5i nende paigaldamiseks oma GOBIN kausta l\u00e4bi go install tool.<\/p>\n<p><\/noindex> <noindex><\/p>\n<p>Go run kaudu loodud t\u00e4idetavad failid ja uus k\u00e4itumine go tool n\u00fc\u00fcd vahem\u00e4lustatakse Go ehituse vahem\u00e4lus. See muudab korduvad k\u00e4ivitamised kiiremaks suurenenud vahem\u00e4lu t\u00f5ttu. <a rel=\"nofollow\" href=\"https:\/\/go.dev\/issue\/69290\">#69290<\/a>.<\/p>\n<p><\/noindex> <\/p>\n<p>K\u00e4sk go build ja go install n\u00fc\u00fcd aktsepteerivad -json lippu, mis edastab ehituse v\u00e4ljundi ja vead struktureeritud JSON-v\u00e4ljundina standardse v\u00e4ljundisse. Formaadi \u00fcksikasju saab n\u00e4ha go help buildjson.<\/p>\n<p> <noindex><\/p>\n<p>Lisaks, go test -json n\u00fc\u00fcd edastab ehituse v\u00e4ljundi ja vead JSON-is, segatuna testimise tulemuse JSON-iga. Neid on v\u00f5imalik eristada uute Action t\u00fc\u00fcpide j\u00e4rgi, kuid kui need tekitavad probleeme testimisintegraatsiooni s\u00fcsteemis, saab naasta tekstip\u00f5hise ehituse v\u00e4ljundi juurde l\u00e4bi <a rel=\"nofollow\" href=\"https:\/\/go.dev\/doc\/godebug\">GODEBUG seadistuse<\/a> gotestjsonbuildtext=1.<\/p>\n<p><\/noindex> <\/p>\n<p>Uus GOAUTH keskkonnamuutuja pakub paindlikku viisi privaatsete moodulite t\u00f5mbamiseks autoriseerimiseks. \u00dcksikasjade n\u00e4gemiseks vaadake go help goauth.<\/p>\n<p> <noindex><\/p>\n<p>K\u00e4sk go build on n\u00fc\u00fcd paigaldatav <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/runtime\/debug#BuildInfo.Main\">peamooduli versioon<\/a> kompaleeritud binaarfailis, tuginedes versioonihalduss\u00fcsteemi sildile ja\/v\u00f5i commit'ile. Suffiks +dirty lisatakse, kui on olemas commit'itmata muudatusi. Versioonihalduse teabe binaarfailist v\u00e4lja j\u00e4tmiseks v\u00f5ib kasutada lipikut -buildvcs=false.<\/p>\n<p><\/noindex> <noindex><\/p>\n<p>Uus <a rel=\"nofollow\" href=\"https:\/\/go.dev\/doc\/godebug\">GODEBUG seade<\/a> <a rel=\"nofollow\" href=\"https:\/\/go.dev\/doc\/toolchain#select\">toolchaintrace=1<\/a> on n\u00fc\u00fcd saadaval toolchaini valimisprotsessi j\u00e4lgimiseks k\u00e4skudes go.<\/p>\n<p><\/noindex> <\/p>\n<h3>Cgo<\/h3>\n<p> <noindex><\/p>\n<p>Cgo toetab uusi annotatsioone C funktsioonide jaoks, et parandada k\u00e4itamise j\u00f5udlust. #cgo noescape cFunctionName \u00fctleb kompilaatorile, et funktsiooni C cFunctionName edastatud m\u00e4lu ei kustu. #cgo nocallback cFunctionName \u00fctleb kompilaatorile, et funktsioon C cFunctionName ei kutsu tagasi \u00fchtegi Go funktsiooni. Suurema teabe 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 hetkel kompileerimast C funktsiooni kutsunge, mis omab mitmeid kokkusobimatuid deklareerimisi. N\u00e4iteks kui f on deklareeritud kui nii void f(int) kui ka void f(double), annab cgo vea, selle asemel et v\u00f5imaldada vale funktsioonikutsumise j\u00e4rjestuse genereerimist f(0). Uus selle versiooni puhul on paranenud selle veaseisundi tuvastamine, kui kokkusobimatuid deklareerimisi esindavad erinevad failid. <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) desassembleerimist.<\/p>\n<h3>Vet<\/h3>\n<p>Uus tests anal\u00fcsaator teatab levinud vigadest testide, fuzzing'ute, benchmark'ide ja n\u00e4idiste deklareerimistes testpakettides, nagu vale vormindustega nimed, vale allkirjad v\u00f5i n\u00e4idised, mis dokumenteerivad mittev\u00f5imelikke identifikaatoreid. M\u00f5ned neist vigadest v\u00f5ivad p\u00f5hjustada testide eba\u00f5nnestumist.<\/p>\n<p> <noindex><\/p>\n<p>Olemasolev printf-anal\u00fcsaator teavitab n\u00fc\u00fcd fmt.Printf(s) vormikutsungite diagnostikast, kus s on mitte-konstantse formaadiga string, ilma muude argumendideta. Sellised kutsungid on peaaegu alati viga, kuna s v\u00e4\u00e4rtus v\u00f5ib sisaldada s\u00fcmbolit %; selle asemel kasutage fmt.Print. <a rel=\"nofollow\" href=\"https:\/\/go.dev\/issue\/60529\">60529<\/a>. See kontroll kipub leidma vigu olemasolevas koodis ja seet\u00f5ttu rakendatakse seda ainult siis, kui keele versioon (nagu on m\u00e4\u00e4ratud go.mod faili direktiivis v\u00f5i kommentaarides `\/\/go:build`) on v\u00e4hemalt Go 1.24, et v\u00e4ltida p\u00fcsivate integratsioonih\u00e4irete tekkimist uuendamisel Go 1.24 t\u00f6\u00f6riistadele.<\/p>\n<p><\/noindex> <noindex><\/p>\n<p>Olemasolev buildtag-anal\u00fcsaator teavitab n\u00fc\u00fcd diagnoosist, kui on vale <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/cmd\/go#hdr-Build_constraints\">vanema versiooni kogumise piirang<\/a> Go direktiivis \/\/go:build. N\u00e4iteks \/\/go:build go1.23.1 viitab punktiversioonile; selle asemel 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 copylock-anal\u00fcsaator teavitab n\u00fc\u00fcd diagnoosist, kui kolmes \u201efor\u201d ts\u00fcklis, nagu for i := iter(); done(i); i = next(i) { \u2026 }, on muutuja, mis sisaldab sync.Lockerit, nagu sync.Mutex. <a rel=\"nofollow\" href=\"https:\/\/go.dev\/doc\/go1.22#language\">Go 1.22<\/a> muutsin selliste ts\u00fcklite k\u00e4itumist, et iga iteratsiooni jaoks luuakse uus muutuja, kopeerides eelneva iteratsiooni v\u00e4\u00e4rtused; see kopeerimine ei ole lukustuste jaoks ohutu. <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 binaarfail cmd\/go ja testide vahem\u00e4lu mehhanism v\u00f5ivad n\u00fc\u00fcd olla rakendatud lapsprotsesside kaudu, mis rakendavad JSON protokolli cmd\/go t\u00f6\u00f6riista ja lapseprotsessi vahel, mis on m\u00e4\u00e4ratud keskkonnamuutujaga GOCACHEPROG. Varem oli see GOEXPERIMENT. Protokolli detaile saab n\u00e4ha <a rel=\"nofollow\" href=\"https:\/\/go.dev\/cmd\/go\/internal\/cacheprog\">dokumentatsioonis<\/a>.<\/p>\n<p><\/noindex> <\/p>\n<h2>K\u00e4itusaja<\/h2>\n<p> <noindex><\/p>\n<p>Mitmed j\u00f5udluse t\u00e4iustused k\u00e4ituses on keskmiselt v\u00e4hendanud CPU kulusid 2\u20133% esinduslikku m\u00f5\u00f5tmiste kogumit. Tulemused v\u00f5ivad varieeruda olenevalt rakendusest. Need t\u00e4iustused h\u00f5lmavad uut sisseehitatud map \u0440\u0435\u0430\u043biseerimist p\u00f5hinedes <a rel=\"nofollow\" href=\"https:\/\/abseil.io\/about\/design\/swisstables\">Rootsitabelid<\/a>, t\u00f5husam v\u00e4ikeste objektide m\u00e4lu eraldamine ja uus sisemine k\u00e4ituse mutexi \u0440\u0435\u0430\u043biseerimine.<\/p>\n<p><\/noindex> <\/p>\n<p>Uus sisseehitatud map \u0440\u0435\u0430\u043biseerimine ja uus sisemine k\u00e4ituse mutex v\u00f5ivad olla keelatud seadetega GOEXPERIMENT=noswissmap ja GOEXPERIMENT=nospinbitmutex vastavalt koostamisel.<\/p>\n<h2>Kompilaator<\/h2>\n<p>Kompilaator oli juba keelanud m\u00e4\u00e4rata uusi meetodeid saaja t\u00fc\u00fcpidega, mis olid genereeritud cgo, kuid seda piirangut oli v\u00f5imalik \u00fcmber k\u00e4ia t\u00fc\u00fcbialiasiga. Go 1.24 teavitab n\u00fc\u00fcd alati veast, kui saaja t\u00e4histab genereeritud cgo t\u00fc\u00fcpi, otse v\u00f5i kaudselt (t\u00fc\u00fcbialiasi kaudu).<\/p>\n<h2>Lingija<\/h2>\n<p>Lingija genereerib n\u00fc\u00fcd GNU kogu identifikaatori (ELF NT_GNU_BUILD_ID kirje) ELF platvormidel ja UUID (Mach-O LC_UUID laadimisprotsessis) macOS-il vaikimisi. Kogu identifikaator v\u00f5i UUID genereeritakse Go kogu identifikaatorist. Selle saab v\u00e4lja l\u00fclitada lingija lipuga -B none v\u00f5i \u00fcmber m\u00e4\u00e4rata lingija lipuga -B 0xNNNN koos kasutaja m\u00e4\u00e4ratud heksadesimaalse v\u00e4\u00e4rtusega.<\/p>\n<h2>P\u00f6\u00f6ramine<\/h2>\n<p> <noindex><\/p>\n<p>Nagu on m\u00e4rgitud <a rel=\"nofollow\" href=\"https:\/\/go.dev\/doc\/go1.22#bootstrap\">Go 1.22 v\u00e4ljaande m\u00e4rkustes,<\/a>, Go 1.24 n\u00f5uab n\u00fc\u00fcd Go 1.22.6 v\u00f5i hilisema p\u00f6\u00f6ramise jaoks. Arendajad eeldavad, et Go 1.26 n\u00f5uab p\u00f6\u00f6ramiseks Go 1.24 v\u00f5i hilisema punktiv\u00e4ljaande.<\/p>\n<p><\/noindex> <\/p>\n<h2>Standardraamatukogu<\/h2>\n<h3>Piiratud kaustade juurdep\u00e4\u00e4s 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> pakub v\u00f5imalust teostada failis\u00fcsteemi operatsioone kindla kausta piires.<\/p>\n<p><\/noindex> <noindex><\/p>\n<p>Function <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 on <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/os#Root\">os.Root<\/a> tegutsevad selles kataloogis ja ei luba teedel viidata kohtadele v\u00e4ljaspool katalooge, sealhulgas neile, mis j\u00e4rgivad s\u00fcmboolseid linke v\u00e4ljaspool katalooge. meetodid os.Root peegeldavad enamiku 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>Bennchmarkid saavad n\u00fc\u00fcd kasutada kiiremat ja v\u00e4hem veaallikat meetodit <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/testing#B.Loop\">testing.B.Loop<\/a> benchmarkide iteratsioonide tegemiseks nagu for b.Loop() { \u2026 } asemel t\u00fc\u00fcpiliste silmusstruktuuride kaudu, mis h\u00f5lmavad b.N nagu for range b.N. See pakub kahte m\u00e4rkimisv\u00e4\u00e4rset eelist:<\/p>\n<p><\/noindex> <\/p>\n<ul>\n<li>Benchmarki funktsioon t\u00e4idetakse t\u00e4pselt \u00fcks kord iga -count kohta, seega kallid seadistamis- ja puhastusastmed viiakse l\u00e4bi ainult \u00fcks kord.<\/li>\n<li>Funktsiooni kutsumise parameetrid ja tulemused elavad edasi, v\u00e4ltides kompilaatori t\u00e4ielikku optimeerimist ts\u00fckli kehast.<\/li>\n<\/ul>\n<h3>Parendatud finalisaatorid<\/h3>\n<p> <noindex><\/p>\n<p>Uus funktsioon <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/runtime#AddCleanup\">runtime.AddCleanup<\/a> on l\u00f5petamismehhanism, mis on paindlikum, efektiivsem ja v\u00e4hem vigu tekitav kui <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/runtime#SetFinalizer\">runtime.SetFinalizer<\/a>. AddCleanup kinnitab objekti puhastusfunktsiooni, mis aktiveerub, kui objekt muutub k\u00e4ttesaamatuks. Erinevalt SetFinalizer'ist saab \u00fche objekti k\u00fclge kinnitada mitu puhastust. Puhastused v\u00f5ivad olla seotud sisemiste osutitega, puhastused ei p\u00f5hjusta tavaliselt leket, kui objektid moodustavad ts\u00fckli, ja puhastused ei viivita objekti v\u00f5i objektide vabastamisega, 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 osuteid.<\/p>\n<p><\/noindex> <noindex><\/p>\n<p>N\u00f5rgad osutid on madala taseme primitivi, mida pakutakse m\u00e4luruumi efektiivseks kasutamiseks m\u00f5eldud struktuuride loomiseks, nagu n\u00f5rgad s\u00f5nastikud v\u00e4\u00e4rtuste kaardistamiseks, kanoniseerimise s\u00f5nastikud mis tahes jaoks, mis ei ole kaetud paketiga <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/unique\/\">unique<\/a>, ja erinevat liiki puhverdamiseks. Nende kasutusjuhtide toetamiseks pakub see v\u00e4ljaanne ka <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 crypto\/mlkem paket<\/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-kvantaalne 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\u00f5hist v\u00f5tme v\u00e4ljundifunktsiooni \u201cExtract-and-Expand\u201d 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\u00f5hist v\u00f5tme v\u00e4ljundifunktsiooni 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 SHA-3 ja SHAKE ning cSHAKE laiendatud v\u00e4ljundi funktsioonid, 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 varem olemasolevatel 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 mehhanismide komplekti FIPS 140-3 vastavuse tagamiseks<\/a>.<\/p>\n<p><\/noindex> <\/p>\n<p>Go kr\u00fcptograafia moodul on standardraamatukogu sisemiste pakettide kogum, mida kasutatakse FIPS 140-3 heakskiidetud algoritmide rakendamiseks. Rakendused ei vaja muudatusi Go kr\u00fcptograafia mooduli kasutamiseks heakskiidetud algoritmide jaoks.<\/p>\n<p> <noindex><\/p>\n<p>Uut keskkonnamuutujat GOFIPS140 saab kasutada Go kr\u00fcptograafia mooduli versiooni valimiseks, mida kasutada koostamisel. Uut <a rel=\"nofollow\" href=\"https:\/\/go.dev\/doc\/godebug\">GODEBUG seade<\/a> fips140 saab kasutada FIPS 140-3 re\u017eiimi lubamiseks t\u00f6\u00f6tamise ajal.<\/p>\n<p><\/noindex> <\/p>\n<p>Go 1.24 sisaldab Go kr\u00fcptograafia moodulit versioonis v1.0.0, mis on hetkel akrediteeritud CMVP laboriga testimisel.<\/p>\n<h3>Uus eksperimentaalne pakett 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> pakett toetab konkurentsikoodi testimist.<\/p>\n<p><\/noindex> <\/p>\n<ul>\n<li>Function <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/testing\/synctest\/#Run\">synctest.Run<\/a> k\u00e4ivitab r\u00fchma gorutine isoleeritud \"mulli\" sees. Mullis toimivad paketi funktsioonid <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/time\">aeg<\/a> vale aegadel.<\/li>\n<li>Funktsioonid <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/testing\/synctest#Wait\">synctest.Wait<\/a> ootab, kuni k\u00f5ik gorutiinid on praeguses mullis blokeeritud.<\/li>\n<\/ul>\n<p>Lisainfot leiate paketi dokumentatsioonist.<\/p>\n<p> <noindex><\/p>\n<p>Pakett synctest on eksperimentaalne ja peab olema aktiveeritud seadistusega GOEXPERIMENT=synctest. Paketi API v\u00f5ib tulevastes v\u00e4ljaannetes muutuda. <a rel=\"nofollow\" href=\"https:\/\/go.dev\/issue\/67434\">#67434<\/a> rohkema teabe saamiseks ja tagasiside edastamiseks.<\/p>\n<p><\/noindex> <\/p>\n<h3>V\u00e4ikesed muudatused teegis<\/h3>\n<h4><a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/archive\/\">archive<\/a><\/h4>\n<p>Implementatsioonid (*Writer.AddFS) archive\/zip ja archive\/tar n\u00fc\u00fcd kirjutavad t\u00fchja katalooge pealkirja.<\/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 iteratori ridade jaoks, jagatud uue reaga baiti l\u00f5ikes.<\/li>\n<li><a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/bytes#SplitSeq\">SplitSeq<\/a> tagastab iteratori k\u00f5igi alam l\u00f5ikude jaoks baiti l\u00f5ikes, jaotatud eraldiga.<\/li>\n<li><a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/bytes#SplitAfterSeq\">SplitAfterSeq<\/a> tagastab iteratori alam l\u00f5ikude jaoks baiti l\u00f5ikes, jaotatud p\u00e4rast iga eraldi esinemise eraldist.<\/li>\n<li><a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/bytes#FieldsSeq\">FieldsSeq<\/a> tagastab iteraatori viipidest, mis asuvad t\u00fchikute j\u00e4rjekordade \u00fcmber, 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 iteraatori viipidest, mis asuvad \u00fcmbritsevate Unicode koodipunktide j\u00e4rjekordade \u00fcmber, 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\">NewCipher<\/a> ei implementeeri enam meetodeid NewCTR, NewGCM, NewCBCEncrypter ja NewCBCDecrypter. Need meetodid olid dokumenteerimata ja ei olnud k\u00f5igis arhitektuurides kergesti kergesti k\u00e4tte saadavad. N\u00fc\u00fcd on v\u00e4\u00e4rtus <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/crypto\/cipher#Block\">Block<\/a> peab olema edastatud otse vastavatesse funktsioonidesse <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/crypto\/cipher\/\">crypto\/cipher<\/a>. Praegu kontrollib crypto\/cipher siiski neid meetodeid Block v\u00e4\u00e4rtustes, isegi kui need ei ole enam standardteegis 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> tagastab <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/crypto\/cipher#AEAD\">AEAD<\/a>, mis implementeerib AES-GCM, genereerides juhusliku \u00fchekordse numbri ajal, kui toimub tihendamine, ja lisades selle kr\u00fcpteeritud teksti algusesse.<\/p>\n<p><\/noindex> <noindex><\/p>\n<p>Rakendus <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 <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 loetud aegunuks. OFB ja CFB re\u017eiimid ei ole autentimata, mis \u00fcldiselt v\u00f5imaldab aktiivsetel r\u00fcnnakutel manipuleerida ja taastada avatud teksti. Rakendustele soovitatakse kasutada <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/crypto\/cipher#AEAD\">AEAD<\/a> asemel. Kui autentimata re\u017eiim <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/crypto\/cipher#Stream\">Stream<\/a> on vajalik, saab kasutada <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/crypto\/cipher#NewCTR\">NewCTR<\/a> 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 m\u00e4\u00e4ratletud 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>, implementeerib n\u00fc\u00fcd ka 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>Function <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/crypto\/rand#Read\">Loe<\/a> garanteerib n\u00fc\u00fcd, et eba\u00f5nnestumisi ei esine. Kui Read ei \u00f5nnestu lugemisel <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/crypto\/rand#Reader\">Reader<\/a>, programm l\u00f5petab t\u00f6\u00f6 viivitamatult. Pange t\u00e4hele, et vaikimisi Reader on dokumenteeritud t\u00f6\u00f6tama alati edukalt, seega peaks see muudatus m\u00f5jutama ainult neid programme, mis \u00fcletavad muutuja Reader. \u00dcks erand on Linuxi s\u00fcdamikud versioonides enne 3.17, kus vaikimisi Reader avab endiselt \/dev\/urandom ja v\u00f5ib eba\u00f5nnestuda.<\/p>\n<p><\/noindex> <\/p>\n<p>Linuxi versioonis 6.11 ja hiljem kasutab Reader n\u00fc\u00fcd s\u00fcsteemik\u00f5net getrandom vDSO kaudu. See on mitu korda kiirem, tavaliselt v\u00e4ikeste lugemiste jaoks.<\/p>\n<p>OpenBSD-s 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> n\u00fc\u00fcd suudab genereerida kr\u00fcptograafiliselt turvalisi juhuslikke tekste.<\/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> n\u00fc\u00fcd tagastab vea, kui k\u00fcsitakse v\u00e4hem kui 1024-bitist v\u00f5tit. K\u00f5ik meetodid Sign, Verify, Encrypt ja Decrypt tagastavad n\u00fc\u00fcd vea, kui neid kasutatakse alla 1024-bitise v\u00f5tmega. Sellised v\u00f5tmed ei ole turvalised ja ei tohiks olla kasutusel. <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 teste tehes, n\u00e4iteks lisades rea \/\/go:debug rsa1024min=0 testifaili. Uus <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/crypto\/rsa#example-GenerateKey-TestKey\">an example<\/a> GenerateKey pakub lihtsasti kasutatavat standardset 2024-bitist testv\u00f5tit.<\/p>\n<p><\/noindex> <noindex><\/p>\n<p>N\u00fc\u00fcd on ohutu ja t\u00f5hus kasutada <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 kiirem osaliselt t\u00e4idetud <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/crypto\/rsa#PrecomputedValues\">PrecomputedValues<\/a>, n\u00e4iteks v\u00f5tme eraldamisel JSON-ist.<\/p>\n<p><\/noindex> <noindex><\/p>\n<p>Pakett tagastab n\u00fc\u00fcd 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 katkenud juhuslikkuse allikate jaoks. V\u00e4ljad <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> n\u00fc\u00fcd kasutatakse ja valideeritakse isegi siis, kui m\u00f5ned v\u00e4\u00e4rtused puuduvad. Samuti on tehtud muudatusi crypto\/x509 keyde de\u0161ifreerimise ja v\u00e4ljav\u00f5tmise osas, mida k\u00e4sitletakse allpool.<\/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> n\u00fc\u00fcd kasutab natuke teistsugust meetodit privaatsete eksponentside genereerimiseks (Carmichael funktsioon Euler'i funktsiooni asemel). Haruldased rakendused, mis v\u00e4ljastpoolt uuesti genereerivad v\u00f5tmeid ainult algarvudest, v\u00f5ivad toota erinevaid, kuid \u00fchilduvaid tulemusi.<\/p>\n<p><\/noindex> <\/p>\n<p>Avalike ja privaatsete v\u00f5tmete operatsioonid on n\u00fc\u00fcd kuni kaks korda kiirem wasm-is.<\/p>\n<h3>crypto\/sha*<\/h3>\n<ul>\n<li><a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/crypto\/sha1\/\">crypto\/sha1<\/a>: tagastatud v\u00e4\u00e4rtus <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/sha1#New\">sha1.New<\/a> n\u00fc\u00fcd rakendab samuti 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>: tagastatud v\u00e4\u00e4rtused <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> n\u00fc\u00fcd rakendavad samuti 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>: tagastatud v\u00e4\u00e4rtused <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>, n\u00fc\u00fcd rakendavad samuti 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> v\u00f5imaldab kasutajal t\u00e4ita funktsiooni, millel on arhtektuurile spetsiifilised funktsioonid, mis tagavad teatud juhiste muutumatuse andmete aja v\u00e4\u00e4rtuse osas. Seda saab kasutada, et veenduda, et kood, mis on loodud t\u00f6\u00f6tama konstantse aja jooksul, pole protsessoritasandi funktsioonide t\u00f5ttu optimeeritud nii, et see t\u00f6\u00f6tab muutuva ajaga. Praegu kasutab WithDataIndependentTiming bitit PSTATE.DIT arm64-l ja ei tee midagi k\u00f5igil teistel arhtektuuridel. <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 t\u00e4ielikult kattuma v\u00f5i mitte kattuma sisendiga. Varasem k\u00e4itumine oli vastasel juhul m\u00e4\u00e4ramatu, n\u00fc\u00fcd on XORBytes panika.<\/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\u00e4lja <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-kvantne v\u00f5tmevahetuse mehhanism <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/crypto\/tls#X25519MLKEM768\">X25519MLKEM768<\/a> on n\u00fc\u00fcd toetatud ja vaikimisi sisse l\u00fclitatud, 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 vaike.<\/p>\n<p><\/noindex> <\/p>\n<p>X25519Kyber768Draft00 katsetatav v\u00f5tmevahetus on eemaldatud.<\/p>\n<p> <noindex><\/p>\n<p>V\u00f5tmevahetusprotsess k\u00e4ideldakse n\u00fc\u00fcd t\u00e4ielikult crypto\/tls paketi kaudu. Protsess <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/crypto\/tls#Config.CurvePreferences\">Config.CurvePreferences<\/a> ignoreeritakse ning sisu kasutatakse ainult selleks, et m\u00e4\u00e4rata, millised v\u00f5tmevahetused kaasata, kui v\u00e4li 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 laiendite identifikaatorite nimekirja. See v\u00f5ib olla kasulik TLS klientide j\u00e4lgimisel.<\/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> ei toeta enam 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>Sertifikaatide poliitikav\u00e4li on muudetud <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/crypto\/x509#Certificate.PolicyIdentifiers\">Certificate.PolicyIdentifiers<\/a> j\u00e4rgnevaga <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/crypto\/x509#Certificate.Policies\">Certificate.Policies<\/a>. Sertifikaatide anal\u00fc\u00fcsimisel t\u00e4idetakse m\u00f5lemat v\u00e4lja, kuid sertifikaatide poliitikate loomisel v\u00f5etakse need v\u00e4ljalt Certificate.Policies, mitte Certificate.PolicyIdentifiers. See muudatus v\u00f5ib olla taastatav <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, kui v\u00e4ljal <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/crypto\/x509#Certificate.SerialNumber\">Certificate.SerialNumber<\/a> on nil, selle asemel, et eba\u00f5nnestuda.<\/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 on 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\u00f5etavate poliitikate kogumiks <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/crypto\/x509#OID\">OIDid<\/a>. Ainult kehtivate poliitikate veergudega sertifikaatide ahelad 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> tagastab n\u00fc\u00fcd vea asemel vale RSA v\u00f5ti v\u00e4ljakutse. (<a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/crypto\/x509#MarshalPKCS1PrivateKey\">MarshalPKCS1PrivateKey<\/a> ei tagasta viga ja selle k\u00e4itumine valede v\u00f5tmete korral j\u00e4\u00e4b 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 saavad tagasi l\u00fckata vale RSA v\u00f5tmed, mis varem olid 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 (Executable and Linkable Format) failides. Uus meetod <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/debug\/elf#File.DynamicVersions\">File.DynamicVersions<\/a> tagastab ELF failis m\u00e4\u00e4ratud d\u00fcnaamiliste versioonide nimekirja. Uus meetod <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/debug\/elf#File.DynamicVersionNeeds\">File.DynamicVersionNeeds<\/a> tagastab ELF failile vajalikud d\u00fcnaamilised versioonid, mis on m\u00e4\u00e4ratletud teistes ELF objektides. L\u00f5puks, uued v\u00e4ljad <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\/\">kodeerimine<\/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> olidate ontext taotleb aitoma pata nimesemente mangtevaid teksedes ja binaarset esitlemat men fiktsiooni saldile. Need interface'id pakuvad sama funktsionaalsust 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 uue saldi eraldamise asemel lisavad nad andmed otse olemasolevasse saldi. Need interface'id on n\u00fc\u00fcd rakendatud standardraamatukogu t\u00fc\u00fcpide kaudu, 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>Struktuuri v\u00e4li kompileerimise ajal, kasutades uut v\u00f5imalust omitzero struktuuri v\u00e4li sildis, j\u00e4etakse vahele, kui selle v\u00e4\u00e4rtus on null. Kui v\u00e4li t\u00fc\u00fcbil on meetod IsZero() bool, kasutatakse seda v\u00e4\u00e4rtuse nulliks m\u00e4\u00e4ramiseks. Muidu on v\u00e4\u00e4rtus null, kui see <a rel=\"nofollow\" href=\"https:\/\/go.dev\/ref\/spec#The_zero_value\">on nullv\u00e4\u00e4rtus tema t\u00fc\u00fcbile<\/a>. Omitzero silt on puhtam ja v\u00e4hem vigaeng alus v\u00f5rreldes omitempty'iga, kui kavatsus on j\u00e4tta nullv\u00e4\u00e4rtused v\u00e4lja. Eriti, erinevalt omitempty'ist, j\u00e4tab omitzero v\u00e4lja 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\u00e4etakse v\u00e4li vahele, kui v\u00e4\u00e4rtus on t\u00fchi v\u00f5i null (v\u00f5i m\u00f5lemat korraga).<\/p>\n<p> <noindex><\/p>\n<p><a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/encoding\/json#UnmarshalTypeError.Field\">UnmarshalTypeError.Field<\/a> n\u00fc\u00fcd sisaldab sisseehitatud struktuure, mis pakuvad detailsemaid veateateid.<\/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 paljastavad paari meetodi j\u00e4rjendid nagu Len() int ja At(int) T, sisaldavad n\u00fc\u00fcd ka meetodeid, mis tagastavad iteratoore, lihtsustades 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>: tagastatud v\u00e4\u00e4rtus <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/hash\/adler32#New\">Uus<\/a>, implementeerib n\u00fc\u00fcd ka 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>: tagastatud v\u00e4\u00e4rtused <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>, n\u00fc\u00fcd rakendavad samuti 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>: tagastatud v\u00e4\u00e4rtus <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/hash\/crc64#New\">Uus<\/a>, implementeerib n\u00fc\u00fcd ka 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>: tagastatud v\u00e4\u00e4rtused <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>, n\u00fc\u00fcd rakendavad samuti 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> suudavad arvutada mis tahes v\u00e4\u00e4rtuse hash'i, mida on v\u00f5imalik v\u00f5rrelda. See v\u00f5imaldab hash'ida \u00fcksk\u00f5ik mida, 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 handler, mis ei ole kunagi aktiveeritud ja viskab alati oma v\u00e4ljundi minema.<\/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 liidest <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 liidest <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>: aegunud k\u00f5rgema taseme funktsioonide v\u00e4ljakutsed <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/math\/rand#Seed\">Seed<\/a> ei oma enam mingit m\u00f5ju. Vana k\u00e4itumise taastamiseks saab kasutada <a rel=\"nofollow\" href=\"https:\/\/go.dev\/doc\/godebug\">GODEBUG seadistuse<\/a> randseednop=0. Rohkem konteksti leiate <a rel=\"nofollow\" href=\"https:\/\/go.dev\/issue\/67273\">pakkumine 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 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\/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 vaikimisi MPTCP-d 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> rakendab n\u00fc\u00fcd liidest <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>Piirang on muutunud <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/net\/http#Transport\">Transport<\/a> saadetud informatiivsete vastuste 1xx osas vastuseks p\u00e4ringule. Varem l\u00f5petas see p\u00e4ringu ja tagastas vea p\u00e4rast rohkem kui 5 vastuse 1xx saamist. N\u00fc\u00fcd tagastab see vea ainult siis, kui k\u00f5ikide vastuste 1xx suurus \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 konks <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/net\/http\/httptrace#ClientTrace.Got1xxResponse\">net\/http\/httptrace.ClientTrace.Got1xxResponse<\/a>, n\u00fc\u00fcd pole vastuste 1xx koguarvule piiranguid. Konks 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 lubab HTTP\/2 protokolli seadistuste konfigureerimist.<\/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 seadistamiseks, milliseid HTTP protokolle server v\u00f5i klient kasutab.<\/p>\n<p><\/noindex> <\/p>\n<p>Server ja klient saavad olla seadistatud toeks kr\u00fcpteerimata \u00fchendustele HTTP\/2.<\/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 portides. Server v\u00f5ib \u00fchel ja samal pordil korraga 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, seega kasutatakse edastamiseks kr\u00fcptimata HTTP\/2 aadressidel. <a rel=\"nofollow\" href=\"http:\/\/.\">http:\/\/.<\/a> Kui transport on konfigureeritud kasutama samaaegselt HTTP\/1 ja kr\u00fcptimata HTTP\/2, siis kasutatakse HTTP\/1.<\/p>\n<p><\/noindex> <\/p>\n<p>Kr\u00fcptimata HTTP\/2 tugi kasutab \u201eHTTP\/2 etteteatamisega\u201c (RFC 9113, jaotis 3.3). Aegunud pealkirja \u201cUpgrade: h2c\u201d tugi puudub.<\/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> n\u00fc\u00fcd rakendab samuti 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> v\u00f5ib n\u00fc\u00fcd kasutada Windows Nano Serveris. Rakendust on uuendatud, et v\u00e4ltida NetApi32 teegi 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 teenuse kasutajakontosid:<\/p>\n<p><\/noindex> <\/p>\n<ul>\n<li>NT AUTHORITY\\SYSTEM<\/li>\n<li>NT AUTHORITY\\LOCAL SERVICE<\/li>\n<li>NT AUTHORITY\\NETWORK 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 oluliselt kiirendatud, kui praegune kasutaja on seotud aeglase domeeniga, mis on paljude ettev\u00f5tte kasutajate jaoks tavaline juhtum. Uue rakenduse j\u00f5udlus on n\u00fc\u00fcd millisekundites, v\u00f5rreldes eelmise rakendusega, mis v\u00f5is l\u00f5petamiseks v\u00f5tta mitu sekundit, isegi minuteid.<\/p>\n<p><\/noindex> <noindex><\/p>\n<p>Windowsis <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/os\/user#Current\">Current<\/a> n\u00fc\u00fcd tagastab protsessi omaniku kasutaja, kui k\u00e4ivitatud l\u00f5ng annab endast teise kasutajana. Varasemalt tagastas see vea.<\/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> rakendab n\u00fc\u00fcd liidest <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>Function <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/runtime#GOROOT\">GOROOT<\/a> on n\u00fc\u00fcd kuulutatud aegunuks. Uues koodis tuleks eelistada s\u00fcsteemsete teede kasutamist binaari \"go\" m\u00e4\u00e4ratlemiseks ning kasutada go env GOROOT, et m\u00e4\u00e4ratleda 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 iteratooridega t\u00f6\u00f6tamiseks:<\/p>\n<p><\/noindex> <\/p>\n<ul>\n<li><a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/strings#Lines\">Lines<\/a> tagastab iteratsiooni uue reaga eraldatud ridade \u00fcle stringis.<\/li>\n<li><a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/strings#SplitSeq\">SplitSeq<\/a> tagastab iteratsiooni k\u00f5ikide alams\u00f5nedega stringis, eraldatud sepaarori abil.<\/li>\n<li><a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/strings#SplitAfterSeq\">SplitAfterSeq<\/a> tagastab iteratsiooni alams\u00f5nedega stringis, jagades p\u00e4rast iga sepaarori esinemist.<\/li>\n<li><a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/strings#FieldsSeq\">FieldsSeq<\/a> tagastab iteratsiooni alams\u00f5nedega stringis, mis on eraldatud valgete m\u00e4rkide j\u00e4reltulevate j\u00e4rjestustega, nagu on m\u00e4\u00e4ratud.<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 alams\u00f5nedega stringis, mis on eraldatud Unicode'i koodipunktide j\u00e4rjestustega, 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>Rakendus <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/sync#Map\">sync.Map<\/a> oli muudetud, et parandada j\u00f5udlust, eriti s\u00f5nastiku muudatuste osas. N\u00e4iteks on v\u00e4iksem t\u00f5en\u00e4osus, et muutuvad mittet\u00e4iendavad kogud suuremates s\u00f5nastikes, ning enam ei ole vaja ajakulu, et saavutada madala konkurentsi s\u00f5nastiku koormust.<\/p>\n<p><\/noindex> <noindex><\/p>\n<p>Kui teil tekib mingeid probleeme, seadistage GOEXPERIMENT=nosynchashtriemap kogumise ajal, et naasta vana rakenduse juurde ja palun <a rel=\"nofollow\" href=\"https:\/\/go.dev\/issue\/new\">t\u00e4itke probleemide vorm<\/a>.<\/p>\n<p><\/noindex> <\/p>\n<h4><a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/testing\/\">testing<\/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\u00fchistatakse testi l\u00f5puleviimise j\u00e4rel ja enne puhastusfunktsioonide 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\u00f5ivad olla kasutatud t\u00f6\u00f6kausta muutmiseks testi v\u00f5i benchmark'i t\u00f6\u00f6 perioodil.<\/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-over-func ja range-over-int.<\/p>\n<h4><a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/time\/\">aeg<\/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>Pordid<\/h2>\n<h3>Linux<\/h3>\n<p> <noindex><\/p>\n<p>Kuidas oli <a rel=\"nofollow\" href=\"https:\/\/go.dev\/doc\/go1.23#linux\">teadaanded<\/a> Go 1.23 versiooniteatises, Go 1.24 n\u00f5uab Linuxi tuuma versiooni 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>go:wasmexport kompilaatori direktiiv on lisatud Go programmidele 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 kogumist kui <a rel=\"nofollow\" href=\"https:\/\/github.com\/WebAssembly\/WASI\/blob\/63a46f61052a21bfab75a76558485cf097c0dbba\/legacy\/application-abi.md#current-unstable-abi\">reactor\/library<\/a> n\u00e4idates koostamise lippu -buildmode=c-shared.<\/p>\n<p><\/noindex> <noindex><\/p>\n<p>Rohkem t\u00fc\u00fcpe on n\u00fc\u00fcd lubatud funktsioonide go:wasmimport argumentide v\u00f5i tagastustena. Eriti lubatakse bool, string, uintptr ning viidatakse teatud t\u00fc\u00fcpide (rohkem teavet leiate <a rel=\"nofollow\" href=\"https:\/\/go.dev\/pkg\/cmd\/compile#hdr-WebAssembly_Directives\">dokumentatsioonis<\/a>), koos 32-bitiste ja 64-bitiste t\u00e4isarvude ning ujuvate punktide ja unsafe.Pointer'iga, mis on juba lubatud. Need t\u00fc\u00fcbid on samuti lubatud funktsioonide go:wasmexport argumentide v\u00f5i tagastustena.<\/p>\n<p><\/noindex> <\/p>\n<p>WebAssembly toega failid on seatud lib\/wasm kausta, asemel misc\/wasm.<\/p>\n<p>Algne m\u00e4lu suurus on oluliselt v\u00e4hendatud, eriti v\u00e4ikeste WebAssembly rakenduste jaoks.<\/p>\n<h3>Windows<\/h3>\n<p> <noindex><\/p>\n<p>32-bitine windows\/arm port (GOOS=windows GOARCH=arm) on m\u00e4rgitud katkenuks. \u00dcksikasjad leiate <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-novosti-interneta"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 4.9.10 - aioseo.com -->\n\t<meta name=\"description\" content=\"\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\" \/>\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\/novosti-interneta\/go-1-24\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 4.9.10\" \/>\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:description\" content=\"\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\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/et\/blog\/novosti-interneta\/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":"Go keele uus versioon, 1.24, v\u00e4lja tuleb kuus kuud p\u00e4rast Go 1.23. Enamiku muudatuste eesm\u00e4rk on t\u00f6\u00f6riistaribade, jooksutarkvara ja raamatukogude rakendamine. Nagu alati, tagab v\u00e4ljaanne Go 1 \u00fchilduvuse lubaduse. Go keele arendajad ootavad, et peaaegu k\u00f5ik Go programmid j\u00e4tkavad kompileerimist ja t\u00f6\u00f6tamist nagu varem. Go 1.24 keele muudatused toetavad n\u00fc\u00fcd t\u00e4ielikult t\u00fc\u00fcbi \u00fcldiste aliaste kasutamist: alias","canonical_url":"https:\/\/prohoster.info\/et\/blog\/novosti-interneta\/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:description":"\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","og:url":"https:\/\/prohoster.info\/et\/blog\/novosti-interneta\/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"},"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}]}}