Isha u furan Luau, nooca hubinta kala duwan ee luqadda Lua

Wuxuu ku dhawaaqay isha furan iyo daabacaadda markii ugu horreysay ee si gooni ah loo sii daayo luqadda barnaamijyada Luau, iyadoo la sii wado horumarinta luqadda Lua iyo dib u dhac ku habboon Lua 5.1. Luau waxaa loogu talagalay in lagu dhex geliyo matoorada qoraallada codsiyada waxaana ujeeddadeedu tahay in la gaaro waxqabadka sare iyo isticmaalka kheyraadka hooseeya. Xeerka mashruuca wuxuu ku qoran yahay C++ wuxuuna ku furan yahay shatiga MIT.

Luau waxay ku kordhisay Lua awood hubinta nooca iyo qaar ka mid ah dhismooyinka cusub sida xargaha. Luqadu gadaal bay la jaan qaadaysaa Lua 5.1 oo qayb ahaan noocyada cusub. Lua Runtime API waa la taageeraa, taasoo kuu ogolaanaysa inaad isticmaasho Luau koodka jira iyo xidhitaanka Wakhtiga runtime luuqadu waxa uu ku salaysan yahay koodka Lua runtime 5.1 oo dib loo habeeyay, laakiin turjubaanka gabi ahaanba dib ayaa loo qoray. Inta lagu jiro horumarka, qaar ka mid ah farsamooyinka hagaajinta cusub ayaa la isticmaalay si loo gaaro waxqabad sare marka loo eego Lua.

Mashruuca waxaa soo saaray Roblox waxaana loo adeegsaday koodka goobta ciyaaraha, ciyaaraha, iyo codsiyada isticmaaleyaasha ee shirkaddan, oo uu ku jiro tifaftiraha Roblox Studio. Markii hore, Luau waxaa lagu hormariyay albaabbada xiran, laakiin ugu dambeyntii waxaa la go'aamiyay in loo wareejiyo qaybta mashaariicda furan ee horumarinta wadajirka ah ee ka qaybgalka bulshada.

Tilmaamo waaweyn:

  • Si tartiib ah u qorida, qabashada booska dhexe ee u dhexeeya qorista firfircoon iyo kuwa taagan. Luau wuxuu kuu ogolaanayaa inaad isticmaasho teebta static sida loogu baahdo adiga oo qeexaya nooca macluumaadka iyada oo loo marayo tafatir gaar ah. Noocyada ku dhex jira "wax", "nil", "boolean", "lambar", "xadhig" iyo "thread" ayaa la bixiyay. Isla mar ahaantaana, suurtagalnimada isticmaalka teeb firfircoon iyada oo aan si cad loo qeexin nooca doorsoomayaasha iyo hawlaha waa la ilaaliyaa. function foo(x: nambar, y: string): boolean local k: string = y: rep(x) celinta k == "a" dhamaadka
  • Taageerada xargaha xargaha (sida ku jirta Lua 5.3) sida "\0x**" (lambarka lix geesoodka), "\ u{**}" ( xarfaha Unicode) iyo "\z" (dhammaadka xariiqda), iyo sidoo kale awood u leh in lagu sawiro qaabaynta tirada (waxaad qori kartaa 1_000_000 halkii aad ka qori lahayd 1000000), xarafyada hexadecimal (0x...) iyo nambarada binary (0b......).
  • Taageerida odhaahda "sii wad", oo buuxinaysa ereyga "jabka" ee jira, si loogu boodo soo noqnoqoshada wareegga cusub.
  • Taageerada hawlwadeenada meelaynta isku dhafka ah (+=, -=, *=, /=,%=, ^=, ..=).
  • Taageerada isticmaalka shuruuda "haddii-ka dibna-kale" xannibaadyada qaab tibaaxo soo celinaya qiimaha la xisaabiyay inta lagu jiro fulinta xannibaadda. Waxaad ku qeexi kartaa tiro aan sabab lahayn oo tibaaxo kale ah oo ku jira block. local maxValue = haddii a > b ka dibna calaamad kale b = haddii x 0 markaa 1 kale 0
  • Joogitaanka habka go'doominta (sand sanduuq), kaas oo kuu ogolaanaya inaad socodsiiso kood aan la aamini karin. Habkan waxa loo isticmaali karaa in lagu habeeyo bilawga dhinac-dhinac koodkaaga iyo koodka uu qoray horumariye kale, tusaale ahaan, maktabadaha qolo saddexaad ee ammaankooda aan la dammaanad qaadi karin.
  • Xaddidaadda maktabadda caadiga ah ee laga saaray shaqooyinka suurtagalka ah ee abuuri kara dhibaatooyinka amniga. Tusaale ahaan, maktabadaha "io" (helitaanka faylasha iyo hababka bilaabista), "package" (helitaanka faylasha iyo qaybaha rarka), "os" (hawlaha gelitaanka faylalka iyo beddelka doorsoomayaasha deegaanka), "debug" (qalliin aan badbaado lahayn oo leh xusuusta) , "dofile" iyo "loadfile" (FS helitaanka).
  • Bixinta qalabyada falanqaynta koodka taagan, garashada khaladaadka (linter) iyo hubinta isticmaalka saxda ah ee noocyada.
  • Baadheeyaha waxqabadka sare leh, turjubaanka bytecode iyo iskuduwe. Luau weli ma taageero ururinta JIT, laakiin waxaa la sheegaa in turjubaanka Luau uu aad ula barbardhigi karo waxqabadka LuaJIT xaaladaha qaarkood.

Source: opennet.ru

Add a comment