ืงื•ื“ ืคืชื•ื— ืขื‘ื•ืจ Luau, ื’ืจืกืช ื‘ื“ื™ืงืช ืกื•ื’ื™ื ืฉืœ ืฉืคืช Lua

ื”ื•ื“ื™ืขื” ืขืœ ื”ืงื•ื“ ื”ืคืชื•ื— ื•ื”ืคืจืกื•ื ืฉืœ ื”ืžื”ื“ื•ืจื” ื”ืขืฆืžืื™ืช ื”ืจืืฉื•ื ื” ืฉืœ ืฉืคืช ื”ืชื›ื ื•ืช Luau, ืžืžืฉื™ื›ื” ื‘ืคื™ืชื•ื— ืฉืœ ืฉืคืช Lua ื•ืชื•ืืžืช ืœืื—ื•ืจ ืขื Lua 5.1. Luau ืžื™ื•ืขื“ืช ื‘ืขื™ืงืจ ืœื”ื˜ืžืขืช ืžื ื•ืขื™ ืกืงืจื™ืคื˜ื™ื ื‘ืืคืœื™ืงืฆื™ื•ืช ื•ืžื˜ืจืชื” ืœื”ืฉื™ื’ ื‘ื™ืฆื•ืขื™ื ื’ื‘ื•ื”ื™ื ื•ืฆืจื™ื›ืช ืžืฉืื‘ื™ื ื ืžื•ื›ื”. ืงื•ื“ ื”ืคืจื•ื™ืงื˜ ื›ืชื•ื‘ ื‘-C++ ื•ื”ื•ื ืคืชื•ื— ืชื—ืช ืจื™ืฉื™ื•ืŸ MIT.

Luau ืžืจื—ื™ื‘ ืืช Lua ืขื ื™ื›ื•ืœื•ืช ื‘ื“ื™ืงืช ืกื•ื’ื™ื ื•ื›ืžื” ืžื‘ื ื™ื ืชื—ื‘ื™ืจื™ื™ื ื—ื“ืฉื™ื ื›ื’ื•ืŸ ืžื™ืœื•ืœื™ ืžื—ืจื•ื–ืช. ื”ืฉืคื” ืชื•ืืžืช ืœืื—ื•ืจ ืขื Lua 5.1 ื•ื‘ื—ืœืงื” ืขื ื’ืจืกืื•ืช ื—ื“ืฉื•ืช ื™ื•ืชืจ. ื”-API ืฉืœ Lua Runtime ื ืชืžืš, ื•ืžืืคืฉืจ ืœืš ืœื”ืฉืชืžืฉ ื‘-Luau ืขื ืงื•ื“ ื•ืงื™ื™ืžื•ืช ืงื™ื™ืžื™ื. ื–ืžืŸ ื”ืจื™ืฆื” ืฉืœ ื”ืฉืคื” ืžื‘ื•ืกืก ืขืœ ืงื•ื“ ืจื™ืฆื” Lua 5.1 ืฉืขื•ื‘ื“ ืžื—ื“ืฉ ืžืื•ื“, ืืš ื”ืžืชื•ืจื’ืžืŸ ืžืฉื•ื›ืชื‘ ืœื—ืœื•ื˜ื™ืŸ. ื‘ืžื”ืœืš ื”ืคื™ืชื•ื—, ื ืขืฉื” ืฉื™ืžื•ืฉ ื‘ื›ืžื” ื˜ื›ื ื™ืงื•ืช ืื•ืคื˜ื™ืžื™ื–ืฆื™ื” ื—ื“ืฉื•ืช ื›ื“ื™ ืœื”ืฉื™ื’ ื‘ื™ืฆื•ืขื™ื ื’ื‘ื•ื”ื™ื ื™ื•ืชืจ ื‘ื”ืฉื•ื•ืื” ืœ-Lua.

ื”ืคืจื•ื™ืงื˜ ืคื•ืชื— ืขืœ ื™ื“ื™ Roblox ื•ืžืฉืžืฉ ื‘ืงื•ื“ ืฉืœ ืคืœื˜ืคื•ืจืžืช ื”ืžืฉื—ืงื™ื, ื”ืžืฉื—ืงื™ื ื•ื™ื™ืฉื•ืžื™ ื”ืžืฉืชืžืฉ ืฉืœ ื—ื‘ืจื” ื–ื•, ื›ื•ืœืœ ืขื•ืจืš Roblox Studio. ื‘ืชื—ื™ืœื” ืคื•ืชื— ืœื•ืื• ื‘ื“ืœืชื™ื™ื ืกื’ื•ืจื•ืช, ืืš ื‘ืกื•ืคื• ืฉืœ ื“ื‘ืจ ื”ื•ื—ืœื˜ ืœื”ืขื‘ื™ืจื• ืœืงื˜ื’ื•ืจื™ื” ืฉืœ ืคืจื•ื™ืงื˜ื™ื ืคืชื•ื—ื™ื ืœื”ืžืฉืš ืคื™ืชื•ื— ืžืฉื•ืชืฃ ื‘ื”ืฉืชืชืคื•ืช ื”ืงื”ื™ืœื”.

ืชื›ื•ื ื•ืช ืขื™ืงืจื™ื•ืช:

  • ื”ืงืœื“ื” ื”ื“ืจื’ืชื™ืช, ืชื•ืคืกืช ืขืžื“ืช ื‘ื™ื ื™ื™ื ื‘ื™ืŸ ื”ืงืœื“ื” ื“ื™ื ืืžื™ืช ื•ืกื˜ื˜ื™ืช. Luau ืžืืคืฉืจ ืœืš ืœื”ืฉืชืžืฉ ื‘ื”ืงืœื“ื” ืกื˜ื˜ื™ืช ืœืคื™ ื”ืฆื•ืจืš ืขืœ ื™ื“ื™ ืฆื™ื•ืŸ ืžื™ื“ืข ืกื•ื’ ื‘ืืžืฆืขื•ืช ื”ืขืจื•ืช ืžื™ื•ื—ื“ื•ืช. ืžืกื•ืคืงื™ื ื”ืกื•ื’ื™ื ื”ืžื•ื‘ื ื™ื "ื›ืœ", "ืืคืก", "ื‘ื•ืœื™ืื ื™", "ืžืกืคืจ", "ืžื—ืจื•ื–ืช" ื•"ื—ื•ื˜". ื™ื—ื“ ืขื ื–ืืช ื ืฉืžืจืช ื”ืืคืฉืจื•ืช ืœื”ืฉืชืžืฉ ื‘ื”ืงืœื“ื” ื“ื™ื ืžื™ืช ืœืœื ื”ื’ื“ืจื” ืžืคื•ืจืฉืช ืฉืœ ืกื•ื’ ื”ืžืฉืชื ื™ื ื•ื”ืคื•ื ืงืฆื™ื•ืช. function foo(x: number, y: string): k: string = y:rep(x) ื”ื—ื–ืจ k == "a" ืกื•ืฃ
  • ืชืžื™ื›ื” ื‘ืžื™ืœื•ืœื™ ืžื—ืจื•ื–ืช (ื›ืžื• ื‘-Lua 5.3) ื›ื’ื•ืŸ "\0x**" (ืžืกืคืจ ื”ืงืกื“ืฆื™ืžืœื™), "\u{**}" (ืชื• Unicode) ื•-"\z" (ืกื•ืฃ ื”ืฉื•ืจื”), ื›ืžื• ื’ื ื™ื›ื•ืœืช ืœื“ืžื™ื™ืŸ ืขื™ืฆื•ื‘ ืžืกืคืจื™ื (ื ื™ืชืŸ ืœื›ืชื•ื‘ 1_000_000 ื‘ืžืงื•ื 1000000), ืžื™ืœื•ืœื™ื•ืช ืขื‘ื•ืจ ืžืกืคืจื™ื ื”ืงืกื“ืฆื™ืžืœื™ื™ื (0x...) ื•ื‘ื™ื ืืจื™ื™ื (0b......).
  • ืชืžื™ื›ื” ื‘ื‘ื™ื˜ื•ื™ "ื”ืžืฉืš", ื”ืžืฉืœื™ื ืืช ืžื™ืœืช ื”ืžืคืชื— "ื”ืคืกืงื”" ื”ืงื™ื™ืžืช, ื›ื“ื™ ืœืงืคื•ืฅ ืœืื™ื˜ืจืฆื™ื” ื—ื“ืฉื” ืฉืœ ืœื•ืœืื”.
  • ืชืžื™ื›ื” ื‘ืื•ืคืจื˜ื•ืจื™ื ืฉืœ ื”ืงืฆืื•ืช ืžื•ืจื›ื‘ื•ืช (+=, -=, *=, /=, %=, ^=, ..=).
  • ืชืžื™ื›ื” ื‘ืฉื™ืžื•ืฉ ื‘ืœื•ืงื™ื ืžื•ืชื ื™ื ืฉืœ "ืื-ืื–-ืื—ืจ" ื‘ืฆื•ืจืช ื‘ื™ื˜ื•ื™ื™ื ื”ืžื—ื–ื™ืจื™ื ืืช ื”ืขืจืš ืฉื—ื•ืฉื‘ ื‘ืžื”ืœืš ื‘ื™ืฆื•ืข ื”ื‘ืœื•ืง. ืืชื” ื™ื›ื•ืœ ืœืฆื™ื™ืŸ ืžืกืคืจ ืฉืจื™ืจื•ืชื™ ืฉืœ ื‘ื™ื˜ื•ื™ื™ elseif ื‘ื‘ืœื•ืง. local maxValue = ืื a > b ืื– a else b ืกื™ืžืŸ ืžืงื•ืžื™ = ืื x < 0 ืื– -1 elseif x > 0 ืื– 1 else 0
  • ื ื•ื›ื—ื•ืช ืฉืœ ืžืฆื‘ ื‘ื™ื“ื•ื“ (ืืจื’ื– ื—ื•ืœ), ื”ืžืืคืฉืจ ืœืš ืœื”ืคืขื™ืœ ืงื•ื“ ืœื ืืžื™ืŸ. ื ื™ืชืŸ ืœื”ืฉืชืžืฉ ื‘ืชื›ื•ื ื” ื–ื• ื›ื“ื™ ืœืืจื’ืŸ ืืช ื”ื”ืฉืงื” ื–ื” ืœืฆื“ ื–ื” ืฉืœ ื”ืงื•ื“ ื•ื”ืงื•ื“ ืฉืœืš ืฉื ื›ืชื‘ื• ืขืœ ื™ื“ื™ ืžืคืชื— ืื—ืจ, ืœืžืฉืœ, ืกืคืจื™ื•ืช ืฉืœ ืฆื“ ืฉืœื™ืฉื™ ืฉืœื ื ื™ืชืŸ ืœื”ื‘ื˜ื™ื— ืืช ื‘ื˜ื™ื—ื•ืชืŸ.
  • ืžื’ื‘ืœื” ืฉืœ ื”ืกืคืจื™ื™ื” ื”ืกื˜ื ื“ืจื˜ื™ืช ืฉืžืžื ื” ื”ื•ืกืจื• ืคื•ื ืงืฆื™ื•ืช ืฉืขืœื•ืœื•ืช ืœื™ืฆื•ืจ ื‘ืขื™ื•ืช ืื‘ื˜ื—ื”. ืœื“ื•ื’ืžื”, ื”ืกืคืจื™ื•ืช "io" (ื’ื™ืฉื” ืœืงื‘ืฆื™ื ื•ืชื”ืœื™ื›ื™ ื”ืฉืงื”), "ื—ื‘ื™ืœื”" (ื’ื™ืฉื” ืœืงื‘ืฆื™ื ื•ื˜ืขื™ื ืช ืžื•ื“ื•ืœื™ื), "os" (ืคื•ื ืงืฆื™ื•ืช ืœื’ื™ืฉื” ืœืงื‘ืฆื™ื ื•ืฉื™ื ื•ื™ ืžืฉืชื ื™ ืกื‘ื™ื‘ื”), "Debug" (ืคืขื•ืœื” ืœื ื‘ื˜ื•ื—ื” ืขื ื–ื™ื›ืจื•ืŸ) , "dofile" ื•-"loadfile" (ื’ื™ืฉื” ืœ-FS).
  • ืžืชืŸ ื›ืœื™ื ืœื ื™ืชื•ื— ืงื•ื“ ืกื˜ื˜ื™, ื–ื™ื”ื•ื™ ืฉื’ื™ืื•ืช (ืœื™ื ื˜ืจ) ื•ื‘ื“ื™ืงืช ืฉื™ืžื•ืฉ ื ื›ื•ืŸ ื‘ืกื•ื’ื™ื.
  • ืžื ืชื— ื‘ืขืœ ื‘ื™ืฆื•ืขื™ื ื’ื‘ื•ื”ื™ื, ืžืชื•ืจื’ืžืŸ ื•ืงื•ืžืคื™ื™ืœืจ ื‘ื™ื™ื˜ืงื•ื“. Luau ืขื“ื™ื™ืŸ ืœื ืชื•ืžืš ื‘ืงื•ืžืคื™ืœืฆื™ื” ืฉืœ JIT, ืืš ื˜ื•ืขื ื™ื ืฉื”ืžืชื•ืจื’ืžืŸ Luau ื“ื™ ื“ื•ืžื” ื‘ื‘ื™ืฆื•ืขื™ื ืœ-LuaJIT ื‘ืžืฆื‘ื™ื ืžืกื•ื™ืžื™ื.

ืžืงื•ืจ: OpenNet.ru

ื”ื•ืกืคืช ืชื’ื•ื‘ื”