Kuburitswa kweLua 5.4 programming mutauro

Mushure memakore mashanu ebudiriro inowanikwa kusunungura Lua 5.4, mutauro unokurumidza uye wakakwana wekunyora scripting uyo unoshandiswa zvakanyanya semutauro wakamisikidzwa (somuenzaniso, pakutsanangura magadzirirwo kana kunyora ekuwedzera). Kodhi yemuturikiri yeLua yakanyorwa neC uye inoparadzirwa ne pasi peMIT rezinesi.

Lua inosanganisa yakapfava yemaitiro syntax ine simba rekutsanangura data kuburikidza nekushandiswa kweasociative arrays uye ekuwedzera semantics yemutauro. Lua inoshandisa kutaipa ine simba, inoshandura mitauro inovaka kuita bytecode inomhanya pamusoro perejista-based virtual muchina une otomatiki kuunganidza marara. Muturikiri pachake akagadzirwa seraibhurari inogona kubatanidzwa zviri nyore mumapurojekiti mumitauro yeC neC ++.

chikuru zvitsva:

  • Nzira itsva yekushanda kwemuunganidzi wemarara yaitwa - "chizvarwa", iyo yaienderana neyaimbove iripo yekuwedzera marara maitiro. Iyo modhi nyowani inosanganisira kumhanya kupfupika kukambaira kazhinji, kuvhara chete zvinhu zvakangogadzirwa. Kutenderera kwakazara kwezvinhu zvese kunoitwa chete kana, mushure mekufamba kwenguva pfupi, zvaisakwanisika kuwana yaidiwa ndangariro kushandiswa. Iyi nzira inokubvumira kuti uwane kushanda kwepamusoro uye kuderedza kushandiswa kwekuyeuka paunenge uchichengetedza nhamba huru yezvinhu zvinorarama kwenguva pfupi.
  • Yakawedzera kugona kutsanangura zvinoramba zvichiitika zvinotsanangurwa ne "const" hunhu. Misiyano yakadaro inogona kupihwa kamwe chete uye, kana yangotangwa, haigone kuchinjwa.
  • Yakawedzerwa rutsigiro rwezvinosiyana "kuvharwa", iyo inopihwa uchishandisa iyo" yepedyo" hunhu uye yakafanana neanogara achinja emunharaunda (ane const hunhu), akasiyana nawo pakuti kukosha kwakavharwa (iyo "__close" nzira inonzi) pese painosiya chiyero, semuenzaniso, mushure mekupedzwa kwakajairika kwechivharo, shanduko uchishandisa break/goto/kudzoka kana kubuda kana kukanganisa kwaitika.
  • Type "user data", iyo inopa kugona kuchengetedza chero C data muLua zvinosiyana (inomiririra bhuroka yedata mundangariro kana ine C pointer), ikozvino inogona kuve ne akati wandei maitiro (iine akati wandei metatable).
  • Kuitwa kutsva kwebasa rekugadzira nhamba dzepseudorandom kunoratidzwa - math.random.
  • Yakawedzera hurongwa hweyambiro dzinotemerwa uchishandisa chirevo inyevera uye, kusiyana nezvikanganiso, hazvikanganisi kuenderera mberi kwechirongwa.
  • Yakawedzera debugging ruzivo nezve mashandiro nharo uye kudzorera kukosha.
  • Semantics itsva yakatsanangurwa kuti iverenge nhamba muzvishwe "nokuti". Huwandu hwekudzokororwa hunoverengerwa kusati kwatanga loop, iyo inodzivirira kushanduka kuyerera uye looping. Kana kukosha kwekutanga kwakakura kudarika kukosha kwekumisikidza, kukanganisa kunoratidzwa.
  • Mukushanda 'string.gmatch' akawedzera nharo itsva yekusarudza 'init', iyo inosarudza kuti unotanga kutsvaga kupi (nekuda, kubva pamunhu 1).
  • Zvitsva zvakawedzerwa 'lua_resetthread' (inogadzirisa tambo, inobvisa iyo yese yekufona stack uye inovhara zvese "ku-kuvharwa-kuvharwa" akasiyana) uye 'coroutine.close' (inovhara iyo coroutine uye zvese zvine chekuita ne "ku-kuvharwa-kuvharwa" akasiyana).
  • Mabasa ekushandura tambo kuita manhamba aendeswa ku "string" library.
  • Mafoni kundangariro yekugovera basa anogona iko zvino kutadza kana saizi yekurangarira yakaderedzwa.
  • Mukushanda 'string.format' yakawedzera rutsigiro rweiyo fomati nyowani '% p' ​​(pointer yakadzoserwa ne lua_topointer).
  • Iyo utf8 raibhurari inopa rutsigiro character codes nenhamba dzinosvika 2^31.

Source: opennet.ru

Voeg