Tsegulani zopezeka pa Luau, mtundu wosankha mtundu wa chilankhulo cha Lua

Adalengeza gwero lotseguka komanso kufalitsa koyamba koyimirira kwa chilankhulo cha pulogalamu ya Luau, kupitiliza kukulitsa chilankhulo cha Lua komanso kubwerera kumbuyo komwe kumagwirizana ndi Lua 5.1. Luau idapangidwa kuti ikhale yophatikizira mainjini ojambulira m'mapulogalamu ndipo ikufuna kukwaniritsa magwiridwe antchito apamwamba komanso kugwiritsa ntchito zinthu zochepa. Khodi ya polojekitiyi idalembedwa mu C ++ ndipo imatsegulidwa pansi pa layisensi ya MIT.

Luau amakulitsa Lua ndi luso loyang'ana mitundu komanso zopangira zatsopano monga zingwe. Chilankhulochi ndi cham'mbuyo chimagwirizana ndi Lua 5.1 ndipo pang'ono ndi mitundu yatsopano. Lua Runtime API imathandizidwa, kukulolani kugwiritsa ntchito Luau ndi ma code omwe alipo komanso zomangira. Nthawi yogwiritsira ntchito chinenero imachokera ku code ya Lua 5.1 yokonzedwanso kwambiri, koma womasulirayo amalembedwanso. Pachitukuko, njira zina zatsopano zokometsera zidagwiritsidwa ntchito kuti zitheke bwino poyerekeza ndi Lua.

Ntchitoyi idapangidwa ndi Roblox ndipo imagwiritsidwa ntchito pamakina a nsanja yamasewera, masewera, ndi ogwiritsa ntchito a kampaniyi, kuphatikiza mkonzi wa Roblox Studio. Poyamba, Luau idapangidwa kuseri kwa zitseko zotsekedwa, koma pamapeto pake adaganiza zosamukira ku gulu la mapulojekiti otseguka kuti apititse patsogolo chitukuko limodzi ndi anthu ammudzi.

Mfundo zazikulu:

  • Kulemba pang'onopang'ono, kukhala ndi malo apakati pakati pa kusindikiza kwamphamvu ndi kosasintha. Luau imakulolani kuti mugwiritse ntchito kulemba mokhazikika ngati pakufunika pofotokoza zambiri zamtundu kudzera muzofotokozera zapadera. Mitundu yomangidwa "aliyense", "nil", "boolean", "nambala", "chingwe" ndi "ulusi" amaperekedwa. Panthawi imodzimodziyo, kuthekera kogwiritsa ntchito kujambula kwamphamvu popanda kufotokoza momveka bwino mtundu wa zosinthika ndi ntchito kumasungidwa. ntchito foo(x: chiwerengero, y: chingwe): boolean local k: chingwe = y:rep(x) kubwerera k == "a" mapeto
  • Thandizo la zilembo za zingwe (monga mu Lua 5.3) monga "\0x**" (nambala ya hexadecimal), "\u{**}" (mtundu wa Unicode) ndi "\z" (mapeto a mzere), komanso Kutha kuwona masanjidwe a manambala (mutha kulemba 1_000_000 m'malo mwa 1000000), zilembo za hexadecimal (0x...) ndi manambala apawiri (0b......).
  • Thandizo la mawu oti "pitilizani", zomwe zikugwirizana ndi mawu ofunikira a "break", kuti mulumphe kubwereza kwatsopano.
  • Thandizo kwa ogwira ntchito apawiri (+=, -=, *=, /=, %=, ^=, ..=).
  • Thandizo logwiritsa ntchito ma block "ngati-ndiye-mwina" mwanjira ya mawu omwe amabwezera mtengo womwe wawerengedwa panthawi yakuchita chipikacho. Mutha kutchula nambala yosasinthika ya mawu enanso mu block. local maxValue = ngati a > b ndiye chizindikiro china b chapafupi = ngati x <0 ndiye -1 elseif x > 0 ndiye 1 china 0
  • Kukhalapo kwa njira yodzipatula (sandbox), yomwe imakulolani kuti muthamangitse code yosadalirika. Izi zitha kugwiritsidwa ntchito kukonza zoyambira pambali pa code yanu ndi ma code olembedwa ndi wopanga wina, mwachitsanzo, malaibulale a chipani chachitatu kuti chitetezo chake chitha kutsimikizika.
  • Kuchepetsa laibulale yokhazikika yomwe ntchito zomwe zitha kuyambitsa zovuta zachitetezo zachotsedwa. Mwachitsanzo, malaibulale "io" (kufikira mafayilo ndi njira zoyambira), "phukusi" (kupeza mafayilo ndi kutsitsa ma module), "os" (ntchito zopeza mafayilo ndikusintha zosintha zachilengedwe), "debug" (ntchito yosatetezeka ndi kukumbukira) , "dofile" ndi "loadfile" (FS access).
  • Kupereka zida zowunikira ma static code, kuzindikira zolakwika (linter) ndikuwunika kugwiritsa ntchito koyenera kwa mitundu.
  • Khalani ndi womasulira wochita bwino kwambiri, womasulira wa bytecode ndi compiler. Luau sagwirizana ndi JIT kuphatikiza, koma akuti womasulira wa Luau amafanana kwambiri ndi LuaJIT nthawi zina.

Source: opennet.ru

Kuwonjezera ndemanga