Qhib qhov chaw rau Luau, hom kev txheeb xyuas qhov txawv ntawm Lua lus

Tshaj tawm qhov qhib thiab tshaj tawm ntawm thawj qhov kev tso tawm ib leeg ntawm Luau programming lus, txuas ntxiv txhim kho cov lus Lua thiab rov qab sib haum nrog Lua 5.1. Luau yog tsim los rau embedding scripting engines rau hauv daim ntawv thov thiab lub hom phiaj kom ua tiav kev ua tau zoo thiab kev siv tsawg. Txoj haujlwm code yog sau hauv C ++ thiab qhib raws li MIT daim ntawv tso cai.

Luau txuas Lua nrog hom kev kuaj xyuas muaj peev xwm thiab qee qhov kev tsim kho tshiab xws li cov kab ntawv. Cov lus yog rov qab sib xws nrog Lua 5.1 thiab ib nrab nrog cov ntawv tshiab. Lub Lua Runtime API tau txais kev txhawb nqa, tso cai rau koj siv Luau nrog cov cai uas twb muaj lawm thiab kev khi. Cov lus runtime yog ua raws li kev ua haujlwm hnyav Lua runtime 5.1 code, tab sis tus neeg txhais lus tau sau tag nrho. Thaum lub sij hawm txoj kev loj hlob, qee qhov kev ua kom zoo dua qub tau siv los ua kom tiav kev ua tau zoo dua piv rau Lua.

Qhov project yog tsim los ntawm Roblox thiab yog siv nyob rau hauv cov cai ntawm lub gaming platform, kev ua si, thiab cov neeg siv daim ntawv thov ntawm lub tuam txhab no, nrog rau Roblox Studio editor. Thaum pib, Luau tau tsim kho tom qab kaw qhov rooj, tab sis thaum kawg nws tau txiav txim siab hloov nws mus rau qeb ntawm cov haujlwm qhib rau kev txhim kho txuas ntxiv nrog kev koom tes ntawm zej zog.

Lub ntsiab nta:

  • Kev ntaus ntawv maj mam, tuav txoj haujlwm nruab nrab ntawm kev ntaus ntawv dynamic thiab zoo li qub. Luau tso cai rau koj siv cov ntawv zoo li qub raws li qhov xav tau los ntawm kev qhia hom ntaub ntawv los ntawm cov lus piav qhia tshwj xeeb. Cov built-in hom "ib yam", "nil", "boolean", "number", "string" thiab "xov" yog muab. Nyob rau tib lub sijhawm, qhov muaj peev xwm ntawm kev siv dynamic typing yam tsis tau piav qhia meej txog hom kev hloov pauv thiab kev ua haujlwm tau khaws cia. function foo(x: tooj, y: string): boolean local k: string = y:rep(x) return k == "a" end
  • Kev them nyiaj yug rau txoj hlua literals (xws li Lua 5.3) xws li "\0x**" (tus lej hexadecimal), "\u{**}" (Unicode cim) thiab "\z" (kawg kab), nrog rau cov muaj peev xwm pom tus lej formatting (koj tuaj yeem sau 1_000_000 tsis yog 1000000), cov ntawv sau rau hexadecimal (0x...) thiab binary tooj (0b......).
  • Kev them nyiaj yug rau qhov "txuas ntxiv" qhia, ua kom tiav cov ntsiab lus "so" uas twb muaj lawm, kom dhia mus rau lub voj voog tshiab.
  • Kev them nyiaj yug rau cov neeg ua haujlwm sib txuas (+=, -=, *=, /=, %=, ^=, ..=).
  • Kev them nyiaj yug rau kev siv cov xwm txheej "yog tias-them-lwm" blocks nyob rau hauv daim ntawv ntawm cov kab lus uas xa rov qab tus nqi xam thaum lub sijhawm ua tiav ntawm lub block. Koj tuaj yeem hais qhia tus naj npawb ntawm lwm cov lus hais hauv qhov thaiv. local maxValue = yog a > b ces ib qho ntxiv b hauv zos kos npe = yog x < 0 ces -1 elseif x > 0 ces 1 else 0
  • Lub xub ntiag ntawm ib qho kev sib cais hom (sandbox), uas tso cai rau koj khiav cov cai tsis tsim nyog. Cov yam ntxwv no tuaj yeem siv los teeb tsa lub community launch ib sab ntawm koj tus kheej cov cai thiab cov lej sau los ntawm lwm tus tsim tawm, piv txwv li, cov tsev qiv ntawv thib peb rau kev nyab xeeb uas tsis tuaj yeem lav.
  • Ib qho kev txwv ntawm tus qauv tsev qiv ntawv los ntawm cov haujlwm uas tuaj yeem tsim teeb meem kev nyab xeeb tau raug tshem tawm. Piv txwv li, cov tsev qiv ntawv "io" (kev nkag mus rau cov ntaub ntawv thiab tso tawm cov txheej txheem), "pob" (kev nkag mus rau cov ntaub ntawv thiab thauj khoom), "os" (kev ua haujlwm rau kev nkag mus rau cov ntaub ntawv thiab hloov pauv ib puag ncig), "debug" (kev ua haujlwm tsis zoo nrog lub cim xeeb) , "dofile" thiab "loadfile" (FS nkag).
  • Muab cov cuab yeej rau kev txheeb xyuas cov lej zoo li qub, txheeb xyuas qhov yuam kev (linter) thiab tshawb xyuas qhov tseeb ntawm kev siv hom.
  • Nws tus kheej ua tau zoo parser, bytecode neeg txhais lus thiab compiler. Luau tseem tsis tau txhawb nqa JIT muab tso ua ke, tab sis nws tau lees tias Luau tus neeg txhais lus zoo sib xws hauv kev ua tau zoo rau LuaJIT hauv qee qhov xwm txheej.

Tau qhov twg los: opennet.ru

Ntxiv ib saib