Bude tushen Luau, bambancin nau'in dubawa na harshen Lua

An sanar da buɗaɗɗen tushe da buga farkon fitowar harshen shirye-shirye na Luau, tare da ci gaba da haɓaka harshen Lua da baya mai dacewa da Lua 5.1. An tsara Luau da farko don shigar da injunan rubutun cikin aikace-aikace kuma yana da niyyar cimma babban aiki da ƙarancin amfani da albarkatu. An rubuta lambar aikin a cikin C++ kuma tana buɗe ƙarƙashin lasisin MIT.

Luau ya tsawaita Lua tare da nau'ikan damar duba nau'ikan da wasu sabbin abubuwan ginawa kamar su kirtani. Harshen yana dacewa da baya tare da Lua 5.1 kuma a wani bangare tare da sabbin nau'ikan. Ana tallafawa API ɗin Runtime na Lua, yana ba ku damar amfani da Luau tare da lambar da ke akwai da ɗaure. Lokacin aikin yaren ya dogara ne akan lambar runtime 5.1 na Lua da aka sake yin aiki sosai, amma an sake rubuta fassarar gaba ɗaya. A lokacin haɓakawa, an yi amfani da wasu sabbin dabarun ingantawa don cimma babban aiki idan aka kwatanta da Lua.

Roblox ne ya haɓaka aikin kuma ana amfani dashi a cikin lambar dandamali na caca, wasanni, da aikace-aikacen mai amfani na wannan kamfani, gami da editan Roblox Studio. Da farko, an gina Luau ne a bayan kofofin da aka rufe, amma a ƙarshe an yanke shawarar tura shi zuwa sashin ayyukan buɗe ido don ci gaba da haɓaka haɗin gwiwa tare da haɗin gwiwar al'umma.

Babban fasali:

  • Buga a hankali, ɗaukar matsakaicin matsayi tsakanin bugu mai ƙarfi da a tsaye. Luau yana ba ku damar amfani da rubutu a tsaye kamar yadda ake buƙata ta hanyar tantance nau'in bayanin ta hanyar bayanai na musamman. An samar da nau'ikan ginanniyar "kowa", "nil", "boolean", "lambar", "string" da "zaren" A lokaci guda, ana kiyaye yuwuwar amfani da bugu mai ƙarfi ba tare da fayyace nau'in masu canji da ayyuka ba. aikin foo(x: lamba, y: kirtani): Boolean local k: string = y: rep(x) mayar k == “a” karshen
  • Taimakawa ga ainihin kirtani (kamar a cikin Lua 5.3) kamar "\0x**" (lambar hexadecimal), "\u{**}" (harafin Unicode) da "\z" (ƙarshen layi), da kuma iya hango tsarin tsara lamba (zaka iya rubuta 1_000_000 maimakon 1000000), a zahiri don hexadecimal (0x...) da lambobin binary (0b......).
  • Goyon bayan furcin "ci gaba", yana haɗa kalmar "breaking" data kasance, don tsalle zuwa sabon juzu'in madauki.
  • Taimako ga masu gudanar da ayyuka na fili (+=, -=, *=, /=,%=, ^=, ..=).
  • Taimako don yin amfani da ƙayyadaddun ƙayyadaddun "idan-sai-can" a cikin nau'i na maganganun da ke mayar da ƙimar da aka ƙididdige yayin aiwatar da toshe. Kuna iya ƙayyade adadin sabani na wasu maganganu a cikin toshe. local maxValue = idan a > b sai wata alama b ta gida = idan x <0 to -1 elseif x> 0 sai 1 kuma 0
  • Kasancewar yanayin keɓewa (akwatin sandbox), wanda ke ba ku damar gudanar da lambar da ba ta da aminci. Ana iya amfani da wannan fasalin don tsara ƙaddamarwa gefe da gefen lambar ku da lambar da wani mai haɓaka ya rubuta, misali, ɗakunan karatu na ɓangare na uku don amincin waɗanda ba za a iya lamunce su ba.
  • Ƙayyadaddun ƙayyadaddun ɗakin karatu wanda aka cire ayyukan da zasu iya haifar da matsalolin tsaro. Misali, dakunan karatu "io" (samun fayiloli da ƙaddamarwa matakai), "kunshi" (shigar da fayiloli da kayan aiki), "os" (ayyukan samun damar fayiloli da canza canjin yanayi), "debug" (aiki mara lafiya tare da ƙwaƙwalwar ajiya) , "dofile" da "loadfile" (FS access).
  • Samar da kayan aikin don nazarin lambobin a tsaye, gano kurakurai (linter) da duba daidaitaccen amfani da nau'ikan.
  • Mallakar babban aikin parser, fassarar bytecode da mai tarawa. Har yanzu Luau bai goyi bayan haɗar JIT ba, amma ana da'awar cewa mai fassarar Luau yana da kwatankwacin kwatankwacin aiki da LuaJIT a wasu yanayi.

source: budenet.ru

Add a comment