Tso Tawm ntawm Go programming lus 1.18

Qhov kev tso tawm ntawm Go 1.18 programming lus yog nthuav tawm, uas yog tsim los ntawm Google nrog kev koom tes ntawm cov zej zog raws li ib tug hybrid tov uas muab cov kev ua tau zoo ntawm cov lus compiled nrog xws li zoo ntawm scripting languages ​​li yooj yim sau code. , ceev ntawm txoj kev loj hlob thiab kev tiv thaiv yuam kev. Txoj haujlwm code raug faib raws li BSD daim ntawv tso cai.

Go's syntax yog raws li paub cov ntsiab lus ntawm C lus nrog qee qhov qiv los ntawm Python hom lus. Cov lus yog cov ntsiab lus, tab sis cov cai yooj yim nyeem thiab nkag siab. Go code yog muab tso ua ke rau hauv ib leeg-ib leeg binary executable cov ntaub ntawv uas khiav ib txwm tsis siv lub tshuab virtual (profiling, debugging modules, thiab lwm yam runtime teeb meem nrhiav kom tau subsystems yog integrated raws li runtime Cheebtsam), uas tso cai rau kev ua tau zoo piv rau C cov kev pab cuam.

Qhov project yog pib tsim nrog lub qhov muag rau ntau txoj xov xwm kev ua haujlwm thiab kev ua haujlwm tau zoo ntawm ntau cov tub ntxhais kawm, suav nrog kev muab cov neeg ua haujlwm-qib txhais tau tias rau kev teeb tsa cov lej sib npaug thiab kev sib cuam tshuam ntawm cov txheej txheem sib luag. Cov lus kuj tseem muaj kev tiv thaiv built-in tiv thaiv ntau tshaj kev faib cov cim xeeb blocks thiab muab lub peev xwm los siv cov khoom khib nyiab.

Tus tshiab version ntxiv kev txhawb nqa rau generic functions thiab hom (generics), nrog kev pab los ntawm cov neeg tsim tawm tuaj yeem txhais thiab siv cov haujlwm tsim los ua haujlwm nrog ntau hom ib zaug. Nws tseem tuaj yeem siv interfaces los tsim cov hom sib xyaw ua ke uas nthuav tawm ntau hom ntaub ntawv. Kev them nyiaj yug rau generics yog siv yam tsis muaj kev cuam tshuam rov qab sib raug zoo nrog cov cai uas twb muaj lawm. // Sum set values, ua haujlwm rau int64 thiab float64 hom func SumInntsOrFloats[K piv, V int64 | float64](m map[K]V) V {var s V for _, v := range m { s += v } return s } // Lwm qhov kev xaiv nrog hom lus txhais: hom Number interface { int64 | float64 } func SumNumbers[K piv, V Number](m map[K]V) V {var s V for _, v := range m { s += v } return s }

Lwm yam kev txhim kho:

  • Cov cuab yeej siv rau kev sim fuzzing code tau muab tso rau hauv cov khoom siv txheem. Thaum lub sij hawm fuzzing xeem, ib tug kwj ntawm tag nrho cov ua tau random ob peb ua ke ntawm input cov ntaub ntawv yog generated thiab ua tsis tau tejyam thaum lub sij hawm lawv ua yog kaw. Yog hais tias ib ntus sib tsoo los yog tsis ua raws li cov lus teb xav tau, ces qhov kev coj cwj pwm no feem ntau yuav qhia tau tias muaj kab mob lossis qhov tsis zoo.
  • Ntxiv kev txhawb nqa rau multi-modular workspaces, tso cai rau koj los ua cov lus txib ntawm ntau lub modules ib zaug, tso cai rau koj los tsim thiab khiav code hauv ntau lub modules ib txhij.
  • Kev ua tau zoo tseem ceeb tau tsim rau cov tshuab raws li Apple M1, ARM64 thiab PowerPC64 processors. Ua kom muaj peev xwm siv cov ntawv sau npe tsis yog pawg kom dhau cov lus sib cav rau cov haujlwm thiab rov qab cov txiaj ntsig. Txhim kho inline unrolling ntawm loops los ntawm lub compiler. Hom kev txheeb xyuas hauv lub compiler tau raug kho dua tshiab. Qee qhov kev ntsuam xyuas pom tias 20% nce hauv cov lej ua haujlwm piv rau qhov kev tso tawm dhau los, tab sis kev sib sau nws tus kheej yuav siv sijhawm ntev dua 15%.
  • Nyob rau hauv lub sijhawm ua haujlwm, qhov ua tau zoo ntawm kev rov ua haujlwm ntawm lub cim xeeb rov qab mus rau qhov kev ua haujlwm tau nce ntxiv thiab kev ua haujlwm ntawm cov khoom siv khib nyiab tau raug txhim kho, tus cwj pwm ntawm qhov uas tau ua tiav ntau dua.
  • Cov pob tshiab net/netip thiab debug/buildinfo tau ntxiv rau hauv cov tsev qiv ntawv txheem. Kev them nyiaj yug rau TLS 1.0 thiab 1.1 yog neeg xiam oob qhab los ntawm lub neej ntawd hauv cov neeg siv khoom. Lub crypto/x509 module tau tso tseg cov ntawv pov thawj uas tau kos npe siv SHA-1 hash.
  • Cov kev cai rau ib puag ncig hauv Linux tau raug tsa; ua haujlwm, tam sim no koj yuav tsum muaj Linux ntsiav ntawm yam tsawg kawg version 2.6.32. Hauv kev tso tawm tom ntej no, kev hloov pauv zoo sib xws yuav tsum tau ua rau FreeBSD (kev txhawb nqa rau FreeBSD 11.x ceg yuav raug txiav) thiab tsawg kawg FreeBSD 12.2 yuav tsum ua haujlwm.

Tau qhov twg los: opennet.ru

Ntxiv ib saib