Go dasturlash tilining chiqarilishi 1.22

Google tomonidan hamjamiyat ishtirokida kompilyatsiya qilingan tillarning yuqori unumdorligini skript tillarining kod yozish qulayligi kabi afzalliklari bilan birlashtirgan gibrid yechim sifatida ishlab chiqilayotgan Go 1.22 dasturlash tilining chiqarilishi taqdim etildi. , rivojlanish tezligi va xatolardan himoya qilish. Loyiha kodi BSD litsenziyasi ostida tarqatiladi.

Go sintaksisi Oberon tilidan ba'zi qarzlar bilan C tilining tanish elementlariga asoslangan. Til juda ixcham, ammo kodni o'qish va tushunish oson. Go kodi virtual mashinadan foydalanmasdan (profillash, disk raskadrovka modullari va boshqa ish vaqti muammolarini aniqlash quyi tizimlari ish vaqti komponentlari sifatida birlashtirilgan) tabiiy ravishda ishlaydigan alohida ikkilik bajariladigan fayllarga kompilyatsiya qilinadi, bu esa C dasturlari bilan taqqoslanadigan ishlash imkonini beradi.

Loyiha dastlab ko'p bosqichli dasturlash va ko'p yadroli tizimlarda samarali ishlash, shu jumladan parallel hisoblashni tashkil qilish uchun operator darajasidagi vositalarni taqdim etish va parallel bajariladigan usullar o'rtasidagi o'zaro ta'sirni hisobga olgan holda ishlab chiqilgan. Til, shuningdek, ortiqcha ajratilgan xotira bloklaridan o'rnatilgan himoyani ta'minlaydi va axlat yig'uvchidan foydalanish imkoniyatini beradi.

Yangi versiyadagi o'zgarishlar quyidagilardan iborat:

  • Butun sonlar diapazonini aniqlash qo‘llab-quvvatlashi “for” sikllariga qo‘shildi, masalan, 0 dan 9 gacha bo‘lgan qiymatlarni takrorlash uchun endi “for i := diapazon 10 {...}” tsiklidan foydalanishingiz mumkin.
  • For tsikllari uchun diapazon funktsiyalari uchun eksperimental (GOEXPERIMENT=rangefunc) qoʻllab-quvvatlash qoʻshildi, bu sizga funksiyani iterator sifatida belgilash imkonini beradi. Misol uchun, "i, x := diapazon bo'laklari uchun. Orqaga (lar) {...}"
  • Takrorlashlar bo'ylab tsikl o'zgaruvchilarini almashish uchun koroutinlarga (goroutines) qo'ng'iroqlarga sabab bo'lgan for tsikllari bilan bog'liq uzoq vaqtdan beri mavjud muammo hal qilindi. Masalan, _, v := diapazon qiymatlari uchun := []string{"a", "b", "c"} kod qiymatlari { go func() { fmt.Println(v) bajarildi

    Manba: opennet.ru
DDoS himoyasi, VPS VDS serverlari bo'lgan saytlar uchun ishonchli hosting sotib oling 🔥 DDoS himoyasi, VPS VDS serverlari bilan ishonchli veb-sayt xostingini sotib oling | ProHoster