Mohloli o bulehileng oa Seluau, mofuta oa ho hlahloba mofuta oa puo ea Selua

E phatlalalitse mohloli o bulehileng le phatlalatso ea tokollo ea pele e ikemetseng ea puo ea lenaneo la Luau, e nts'etsapele nts'etsopele ea puo ea Selua le ho khutlela morao e tsamaellana le Lua 5.1. Luau e etselitsoe ho kenya lienjineri tsa mongolo lits'ebetsong mme e ikemiselitse ho fihlela ts'ebetso e phahameng le tšebeliso e tlase ea lisebelisoa. Khoutu ea projeke e ngotsoe ka C ++ mme e butsoe tlasa laesense ea MIT.

Luau e holisa Lua ka bokhoni ba ho lekola mofuta le meaho e meng e mecha e kang likhoele. Puo e ea morao e sebelisana le Lua 5.1 'me ha e le hantle ke liphetolelo tse ncha. Lua Runtime API e tšehelitsoe, e u lumella ho sebelisa Luau ka khoutu e teng le litlamo. Nako ea ho sebetsa ea puo e ipapisitse le khoutu ea 5.1 ea Lua e sebelisitsoeng bocha, empa mofetoleli o ngotsoe bocha ka botlalo. Nakong ea nts'etsopele, mekhoa e meng e mecha ea ho ntlafatsa e ile ea sebelisoa ho fihlela ts'ebetso e phahameng ha e bapisoa le Lua.

Morero o entsoe ke Roblox mme o sebelisoa ho khoutu ea sethala sa lipapali, lipapali le lits'ebetso tsa basebelisi ba k'hamphani ena, ho kenyeletsoa mohlophisi oa Roblox Studio. Qalong, Luau e ile ea ntlafatsoa ka mor'a menyako e koetsoeng, empa qetellong ho ile ha etsoa qeto ea ho e fetisetsa sehlopheng sa merero e bulehileng bakeng sa tsoelo-pele e kopanetsoeng le ho kenya letsoho ha sechaba.

Likarolo tsa bohlokoa:

  • Ho thaepa butle-butle, ho nka boemo ba mahareng lipakeng tsa ho ngola ka matla le ho thaepa. Luau e u fa monyetla oa ho sebelisa ho ngola ka mokhoa o tsitsitseng ha ho hlokahala ka ho hlakisa tlhahisoleseling ka litlhaloso tse khethehileng. Ho fanoe ka mefuta e hahelletsoeng "leha e le efe", "nil", "boolean", "nomoro", "string" le "thread". Ka nako e ts'oanang, monyetla oa ho sebelisa typing e matla ntle le ho hlalosa ka ho hlaka mofuta oa mefuta le mesebetsi e bolokiloe. mosebetsi foo(x: nomoro, y: khoele): boolean local k: khoele = y:rep(x) khutlisetsa k == “a” pheletso
  • Tšehetso bakeng sa litlhaku tsa khoele (joaloka Lua 5.3) joalo ka "\0x**" (nomoro ea hexadecimal), "\u{**}" (Unicode character) le "\z" (qetellong ea mola), hammoho le bokhoni ba ho bona sebopeho sa linomoro (o ka ngola 1_000_000 sebakeng sa 1000000), li-liral bakeng sa hexadecimal (0x...) le linomoro tsa binary (0b......).
  • Ts'ehetso bakeng sa polelo ea "tsoela pele", e tlatselletsang "break" keyword e teng, ho tlolela ho loop iteration e ncha.
  • Ts'ehetso bakeng sa basebetsi ba likabelo tse kopaneng (+=, -=, *=, /=, %=, ^=, ..=).
  • Tšehetso bakeng sa tšebeliso ea li-blocks tse nang le maemo "haeba-e 'ngoe" ka mokhoa oa lipolelo tse khutlisetsang boleng bo baloang nakong ea ts'ebetso ea thibelo. O ka hlakisa palo e sa lekanyetsoang ea lipolelo tse ling ka har'a boloko. local maxValue = haeba a > b ebe letšoao le leng la b sebakeng = haeba x <0 joale -1 elseif x > 0 ebe 1 e 'ngoe 0
  • Ho ba teng ha mokhoa oa ho itšehla thajana (lebokose la lehlabathe), le u lumellang hore u tsamaise khoutu e sa tšepahaleng. Karolo ena e ka sebelisoa ho hlophisa ho qala ka lehlakoreng la khoutu ea hau le khoutu e ngotsoeng ke moqapi e mong, mohlala, lilaebrari tsa mekhatlo ea boraro bakeng sa polokeho ea eona e ke keng ea tiisetsoa.
  • Moeli oa laeborari e tloaelehileng eo mesebetsi e ka bakang mathata a ts'ireletso e tlositsoeng ho eona. Mohlala, lilaebrari "io" (ho fihlella lifaele le lits'ebetso tsa ho qala), "package" (ho fihlella lifaele le li-module tsa ho kenya), "os" (mesebetsi ea ho fihlella lifaele le ho fetola maemo a tikoloho), "debug" ( ts'ebetso e sa bolokehang ka memori) , “dofile” le “loadfile” (ho fihlella FS).
  • Ho fana ka lisebelisoa tsa tlhahlobo ea khoutu e tsitsitseng, ho tseba liphoso (linter) le ho lekola ts'ebeliso e nepahetseng ea mefuta.
  • O na le mohlahlobi ea sebetsang hantle haholo, mofetoleli oa bytecode le moqapi. Luau ha e so tšehetse ho bokelloa ha JIT, empa ho boleloa hore mofetoleli oa Seluau o tšoana hantle le LuaJIT maemong a mang.

Source: opennet.ru

Eketsa ka tlhaloso