Umthombo ovulekileyo we-Luau, uhlobo-lokukhangela umahluko wolwimi lwesiLua

Yazisa umthombo ovulekileyo kunye nokupapashwa kokukhululwa kokuqala okuzimeleyo kolwimi lweprogram yeLuau, ukuqhubela phambili ukuphuhliswa kolwimi lwesiLua kunye nomva ohambelana noLua 5.1. Ulwimi lwesiLuau lujoliswe ngokuyinhloko ekufakeni iinjini zokubhala kwizicelo kwaye zijolise ekufezekiseni ukusebenza okuphezulu kunye nokusetyenziswa kwemithombo ephantsi. Ikhowudi yeprojekthi ibhalwe kwi-C ++ kwaye ivuliwe phantsi kwelayisenisi ye-MIT.

I-Luau yandisa i-Lua ngobuchule bokukhangela uhlobo kunye nolwakhiwo olutsha lwe-syntactic olufana nomtya woqobo. Ulwimi lubuyela ngasemva luhambelana nesiLua 5.1 kwaye ngokuyinxenye neenguqulelo ezintsha. I-Lua Runtime API iyaxhaswa, ikuvumela ukuba usebenzise i-Luau ngekhowudi ekhoyo kunye nezibophelelo. Ixesha lokusetyenziswa kolwimi lisekelwe kwikhowudi ye-Lua esetyenzisiweyo ye-5.1, kodwa itoliki ibhalwe ngokutsha ngokupheleleyo. Ngexesha lophuhliso, ezinye iindlela ezintsha zokuphucula zasetyenziselwa ukuphumeza ukusebenza okuphezulu xa kuthelekiswa neLua.

Le projekthi yaphuhliswa nguRoblox kwaye isetyenziswa kwikhowudi yeqonga lokudlala, imidlalo, kunye nokusetyenziswa kwabasebenzisi bale nkampani, kubandakanya umhleli weRoblox Studio. Ekuqaleni, i-Luau yaphuhliswa emva kweengcango ezivaliweyo, kodwa ekugqibeleni kwagqitywa ukuba idluliselwe kwicandelo leeprojekthi ezivulekileyo zophuhliso oluhlangeneyo kunye nokuthatha inxaxheba koluntu.

Iinkalo eziphambili:

  • Ukuchwetheza ngokuthe ngcembe, ukuthatha indawo ephakathi phakathi kokuchwetheza okuguquguqukayo nokumileyo. I-Luau ikuvumela ukuba usebenzise ukuchwetheza okumileyo njengoko kufuneka ngokukhankanya ulwazi lohlobo ngokusebenzisa amanqakwana akhethekileyo. Kunikwe iindidi ezakhelwe ngaphakathi "nayiphi na", "nil", "boolean", "number", "string" kunye "nomsonto". Ngexesha elifanayo, ithuba lokusebenzisa ukuchwetheza okuguquguqukayo ngaphandle kokuchaza ngokucacileyo uhlobo lwezinto eziguquguqukayo kunye nemisebenzi igcinwe. umsebenzi foo(x: inani, y: umtya): boolean yendawo k: umtya = y:rep(x) buyisela k == β€œa” isiphelo
  • Inkxaso yoluhlu lwamagama (njengakuLua 5.3) njenge "\0x**" (inombolo yehexadecimal), "\u{**}" (umbhalo we-Unicode) kunye "\z" (isiphelo somgca), kunye ukukwazi ukujonga ukufomatha amanani (ungabhala 1_000_000 endaweni ye-1000000), ii-litreals ze-hexadecimal (0x...) kunye namanani okubini (0b......).
  • Inkxaso yebinzana elithi "continue", encedisa igama elingundoqo elithi "break" ekhoyo, ukutsibela kwi-loop iteration entsha.
  • Inkxaso yabaqhubi bezabelo ezidibeneyo (+=, -=, *=, /=, %=, ^=, ..=).
  • Inkxaso yokusetyenziswa kweebhloko ezinemiqathango "ukuba-ke-enye" ​​ngendlela yamazwi abuyisela ixabiso elibalwe ngexesha lokwenziwa kwebhloko. Ungakhankanya inani elingenasizathu lezinye iintetho kwibhloko. local maxValue = ukuba a > b ke enye b uphawu lwasekuhlaleni = ukuba x < 0 ngoko -1 elseif x > 0 ngoko 1 omnye 0
  • Ubukho bendlela yokwahlula (ibhokisi yesanti), ekuvumela ukuba usebenzise ikhowudi engathembekanga. Eli nqaku lingasetyenziselwa ukuququzelela ukuqaliswa ecaleni kwekhowudi yakho kunye nekhowudi ebhalwe ngomnye umthuthukisi, umzekelo, iilayibrari zeqela lesithathu lokhuseleko olungenakuqinisekiswa.
  • Umda wethala leencwadi elisemgangathweni apho imisebenzi enokudala iingxaki zokhuseleko isusiwe. Umzekelo, iilayibrari "io" (ukufikelela kwiifayile kunye neenkqubo zokuqaliswa), "iphakheji" (ukufikelela kwiifayile kunye neemodyuli zokulayisha), "os" (imisebenzi yokufikelela kwiifayile kunye nokutshintsha okuguquguqukayo kwendawo), "debug" (ukusebenza okungakhuselekanga ngememori) , β€œdofile” kunye ne β€œloadfile” (ufikelelo lweFS).
  • Ukubonelela ngezixhobo zokuhlalutya ikhowudi ye-static, ukuchonga iimpazamo (i-linter) kunye nokujonga ukusetyenziswa okuchanekileyo kweentlobo.
  • Eyeyakho i-parser esebenza kakhulu, itoliki ye-bytecode kunye nomqokeleli. U-Luau akakaxhasi ukuhlanganiswa kwe-JIT, kodwa kuthiwa itoliki yesiLuau ithelekiseka kakhulu ekusebenzeni neLuaJIT kwezinye iimeko.

umthombo: opennet.ru

Yongeza izimvo