Lua ဘာသာစကား၏ အမျိုးအစား-စစ်ဆေးခြင်းမျိုးကွဲဖြစ်သော Luau အတွက် ပွင့်လင်းအရင်းအမြစ်

Luau ပရိုဂရမ်းမင်းဘာသာစကား၏ ပထမဆုံးသော သီးသန့်ထုတ်လွှတ်မှုဆိုင်ရာ အရင်းအမြစ်နှင့် ထုတ်ဝေခြင်းအား Lua ဘာသာစကား၏ ဖွံ့ဖြိုးတိုးတက်မှုကို ဆက်လက်လုပ်ဆောင်ပြီး Lua 5.1 နှင့် နောက်ပြန်တွဲဖက်အသုံးပြုနိုင်ကြောင်း ကြေညာခဲ့သည်။ Luau သည် အက်ပလီကေးရှင်းများတွင် scripting engines များကိုထည့်သွင်းရန်အတွက် အဓိကအားဖြင့် ဒီဇိုင်းထုတ်ထားပြီး စွမ်းဆောင်ရည်မြင့်မားပြီး အရင်းအမြစ်သုံးစွဲမှုနည်းပါးစေရန် ရည်ရွယ်ပါသည်။ ပရောဂျက်ကုဒ်ကို C++ ဖြင့် ရေးသားထားပြီး MIT လိုင်စင်အောက်တွင် ဖွင့်ထားသည်။

Luau သည် Lua ကို အမျိုးအစားစစ်ဆေးခြင်းစွမ်းရည်နှင့် string literals ကဲ့သို့သော syntactic တည်ဆောက်မှုအသစ်အချို့ဖြင့် တိုးချဲ့သည်။ ဘာသာစကားသည် Lua 5.1 နှင့် တစ်စိတ်တစ်ပိုင်း ဗားရှင်းအသစ်များနှင့် တွဲဖက်အသုံးပြုနိုင်ပါသည်။ Lua Runtime API ကို ပံ့ပိုးထားပြီး Luau ကို ရှိပြီးသား ကုဒ်များနှင့် ပေါင်းစပ်မှုများဖြင့် အသုံးပြုနိုင်သည်။ ဘာသာစကား runtime သည် ပြင်းထန်စွာ ပြန်လည်ပြုပြင်ထားသော Lua runtime 5.1 ကုဒ်ပေါ်တွင် အခြေခံထားသော်လည်း စကားပြန်သည် လုံးဝပြန်လည်ရေးသားထားသည်။ ဖွံ့ဖြိုးတိုးတက်မှုကာလအတွင်း၊ Lua နှင့် နှိုင်းယှဉ်ပါက ပိုမိုမြင့်မားသောစွမ်းဆောင်ရည်ရရှိစေရန်အတွက် ပိုမိုကောင်းမွန်အောင်ပြုလုပ်ခြင်းနည်းပညာအချို့ကို အသုံးပြုခဲ့သည်။

အဆိုပါပရောဂျက်ကို Roblox မှတီထွင်ခဲ့ပြီး Roblox Studio တည်းဖြတ်သူအပါအဝင် ဤကုမ္ပဏီ၏ ဂိမ်းပလက်ဖောင်း၊ ဂိမ်းများနှင့် အသုံးပြုသူအပလီကေးရှင်းများတွင် အသုံးပြုသည်။ အစပိုင်းတွင်၊ Luau ကို တံခါးပိတ်နောက်ကွယ်တွင် တီထွင်ခဲ့သော်လည်း အဆုံးတွင် ၎င်းအား ရပ်ရွာလူထု၏ ပူးပေါင်းပါဝင်မှုနှင့်အတူ ဆက်လက်ဖွံ့ဖြိုးတိုးတက်ရန်အတွက် အဖွင့်ပရောဂျက်အမျိုးအစားသို့ လွှဲပြောင်းရန် ဆုံးဖြတ်ခဲ့သည်။

အဓိကအင်္ဂါရပ်များ:

  • ဒိုင်းနမစ်နှင့် အငြိမ်စာရိုက်ခြင်းကြားတွင် အလယ်အလတ်အနေအထားကို ဖြည်းဖြည်းချင်းစာရိုက်ခြင်း။ Luau သည် အထူးမှတ်စာများမှတစ်ဆင့် အမျိုးအစားအချက်အလက်ကို သတ်မှတ်ခြင်းဖြင့် လိုအပ်သလို ငြိမ်စာရိုက်ခြင်းကို အသုံးပြုခွင့်ပေးသည်။ Built-in အမျိုးအစား "any", "nil", "boolean", "number", "string" နှင့် "thread" တို့ကို ပေးထားပါသည်။ တစ်ချိန်တည်းမှာပင်၊ ကိန်းရှင်အမျိုးအစားနှင့် လုပ်ဆောင်ချက်များကို အတိအကျမသတ်မှတ်ဘဲ dynamic typing ကို အသုံးပြုရန် ဖြစ်နိုင်ခြေကို ထိန်းသိမ်းထားသည်။ function foo(x: နံပါတ်၊ y: string): boolean local k: string = y:rep(x) return k == “a” end
  • "\5.3x**" (hexadecimal number), "\u{**}" (Unicode အက္ခရာ) နှင့် "\z" (စာကြောင်းအဆုံး) ကဲ့သို့သော string literals (Lua 0 တွင်ကဲ့သို့) ပံ့ပိုးကူညီမှုတို့အပြင်၊ နံပါတ်ဖော်မတ်ခြင်း (1 အစား 000_000_1000000 ကို သင် ရေးနိုင်သည်)၊ hexadecimal (0x...) နှင့် ဒွိကိန်းများ (0b......) အတွက် စာလုံးများကို မြင်ယောင်နိုင်စွမ်းရှိသည်။
  • လက်ရှိ "break" သော့ချက်စကားလုံးကို ဖြည့်စွက်ပြီး ကွင်းဆက်အသစ်တစ်ခုသို့ ခုန်ဆင်းရန် "ဆက်ရန်" စကားရပ်အတွက် ပံ့ပိုးမှု။
  • ပေါင်းစပ်တာဝန်ပေးသည့် အော်ပရေတာများအတွက် ပံ့ပိုးမှု (+=၊ -=၊ *=၊ /=၊ %=၊ ^=၊ ..=)။
  • block ၏လုပ်ဆောင်မှုအတွင်း တွက်ချက်ထားသောတန်ဖိုးကို ပြန်ပေးသည့် အသုံးအနှုန်းပုံစံဖြင့် conditional "if-then-else" ဘလောက်များအသုံးပြုမှုအတွက် ပံ့ပိုးမှု။ block တစ်ခုတွင် elseif expression များ၏ မထင်သလို အရေအတွက်ကို သတ်မှတ်နိုင်သည်။ local maxValue = if a > b then a else b local sign = if x 0 ထို့နောက် 1 else 0
  • မယုံကြည်ရထိုက်သောကုဒ်ကို လုပ်ဆောင်နိုင်စေသည့် သီးခြားခွဲထုတ်မုဒ် (sandbox) တစ်ခု ရှိနေခြင်း။ သင့်ကိုယ်ပိုင်ကုဒ်နှင့် အခြားဆော့ဖ်ဝဲရေးသားသူမှ ရေးသားထားသော ကုဒ်များကို ဘေးချင်းကပ်လျက် လွှင့်တင်ခြင်းအား စုစည်းရန် ဤအင်္ဂါရပ်ကို အသုံးပြုနိုင်ပြီး၊ ဥပမာ၊ လုံခြုံရေးအတွက် အာမခံမရနိုင်သော ပြင်ပအဖွဲ့အစည်းစာကြည့်တိုက်များကို အသုံးပြုနိုင်သည်။
  • လုံခြုံရေးပြဿနာများကို ဖယ်ရှားနိုင်သည့် လုပ်ဆောင်ချက်များကို ဖယ်ရှားနိုင်သည့် စံစာကြည့်တိုက်၏ ကန့်သတ်ချက်။ ဥပမာအားဖြင့်၊ စာကြည့်တိုက်များသည် “io” (ဖိုင်များဝင်ရောက်ခြင်းနှင့် စတင်ခြင်းလုပ်ငန်းစဉ်များ)၊ “ပက်ကေ့ဂျ်” (ဖိုင်များကိုဝင်ရောက်ကြည့်ရှုခြင်းနှင့် မော်ဂျူးများဖွင့်ခြင်း)၊ “os” (ဖိုင်များကိုဝင်ရောက်ကြည့်ရှုခြင်းနှင့် ပြောင်းလဲနိုင်သောပတ်ဝန်းကျင်ပြောင်းလဲမှုများအတွက် လုပ်ဆောင်ချက်များ)၊ “ဒီဘာဂ်” (မမ်မိုရီဖြင့်မလုံခြုံသောလုပ်ဆောင်ချက်များ) "dofile" နှင့် "loadfile" (FS access)။
  • တည်ငြိမ်ကုဒ်ခွဲခြမ်းစိတ်ဖြာမှုအတွက် ကိရိယာများ ပံ့ပိုးပေးခြင်း၊ အမှားအယွင်းများ (linter) ကို ဖော်ထုတ်ခြင်းနှင့် အမျိုးအစားများ၏ မှန်ကန်သောအသုံးပြုမှုကို စစ်ဆေးခြင်း။
  • ကိုယ်ပိုင် စွမ်းဆောင်ရည်မြင့် parser၊ bytecode interpreter နှင့် compiler။ Luau သည် JIT စုစည်းမှုကို မပံ့ပိုးရသေးသော်လည်း Luau စကားပြန်သည် အချို့သောအခြေအနေများတွင် LuaJIT နှင့် စွမ်းဆောင်ရည်တွင် အတော်လေး ယှဉ်နိုင်သည်ဟု ဆိုထားသည်။

source: opennet.ru

မှတ်ချက် Add