рд▓реБрдЖрд╕рд╛рдареА рдореБрдХреНрдд рд╕реНрд░реЛрдд, рд▓реБрдЖ рднрд╛рд╖реЗрдЪрд╛ рдПрдХ рдкреНрд░рдХрд╛рд░-рддрдкрд╛рд╕рдгреА рдкреНрд░рдХрд╛рд░

рд▓реБрдЖ рдкреНрд░реЛрдЧреНрд░реЕрдорд┐рдВрдЧ рднрд╛рд╖реЗрдЪреНрдпрд╛ рдкрд╣рд┐рд▓реНрдпрд╛ рд╕реНрдЯрдБрдбрдЕрд▓реЛрди рд░рд┐рд▓реАрдЭрдЪреЗ рдУрдкрди рд╕реЛрд░реНрд╕ рдЖрдгрд┐ рдкреНрд░рдХрд╛рд╢рди рдЬрд╛рд╣реАрд░ рдХреЗрд▓реЗ, рд▓реБрдЖ рднрд╛рд╖реЗрдЪрд╛ рд╡рд┐рдХрд╛рд╕ рдЪрд╛рд▓реВ рдареЗрд╡рд▓рд╛ рдЖрдгрд┐ рд▓реБрдЖ 5.1 рд╢реА рдмреЕрдХрд╡рд░реНрдб рд╕реБрд╕рдВрдЧрдд. Luau рд╣реЗ рдкреНрд░рд╛рдореБрдЦреНрдпрд╛рдиреЗ рд╕реНрдХреНрд░рд┐рдкреНрдЯрд┐рдВрдЧ рдЗрдВрдЬрд┐рдирд╛рдВрдирд╛ рдНрдкреНрд▓рд┐рдХреЗрд╢рдиреНрд╕рдордзреНрдпреЗ рдПрдореНрдмреЗрдб рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдбрд┐рдЭрд╛рдЗрди рдХреЗрд▓реЗрд▓реЗ рдЖрд╣реЗ рдЖрдгрд┐ рдЙрдЪреНрдЪ рдХрд╛рд░реНрдпрдкреНрд░рджрд░реНрд╢рди рдЖрдгрд┐ рдХрдореА рд╕рдВрд╕рд╛рдзрдиреЗ рд╡рд╛рдкрд░рдгреНрдпрд╛рдЪреЗ рдЙрджреНрджрд┐рд╖реНрдЯ рдЖрд╣реЗ. рдкреНрд░рдХрд▓реНрдк рдХреЛрдб C++ рдордзреНрдпреЗ рд▓рд┐рд╣рд┐рд▓реЗрд▓рд╛ рдЖрд╣реЗ рдЖрдгрд┐ MIT рдкрд░рд╡рд╛рдиреНрдпрд╛рдЕрдВрддрд░реНрдЧрдд рдЦреБрд▓рд╛ рдЖрд╣реЗ.

Luau рдкреНрд░рдХрд╛рд░ рддрдкрд╛рд╕рдгреНрдпрд╛рдЪреА рдХреНрд╖рдорддрд╛ рдЖрдгрд┐ рдХрд╛рд╣реА рдирд╡реАрди рд╕рд┐рдВрдЯреЕрдХреНрдЯрд┐рдХ рд░рдЪрдирд╛ рдЬрд╕реЗ рдХреА рд╕реНрдЯреНрд░рд┐рдВрдЧ рд▓рд┐рдЯрд░рд▓реНрд╕рд╕рд╣ рд▓реБрдЖ рд╡рд╛рдврд╡рддреЗ. рд╣реА рднрд╛рд╖рд╛ Lua 5.1 рдЖрдгрд┐ рдЕрдВрд╢рддрдГ рдирд╡реАрди рдЖрд╡реГрддреНрддреНрдпрд╛рдВрд╕рд╣ рдмреЕрдХрд╡рд░реНрдб рд╕реБрд╕рдВрдЧрдд рдЖрд╣реЗ. рд▓реБрдЖ рд░рдирдЯрд╛рдЗрдо API рд╕рдорд░реНрдерд┐рдд рдЖрд╣реЗ, рддреБрдореНрд╣рд╛рд▓рд╛ рд╡рд┐рджреНрдпрдорд╛рди рдХреЛрдб рдЖрдгрд┐ рдмрд╛рдЗрдВрдбрд┐рдВрдЧрд╕рд╣ Luau рд╡рд╛рдкрд░рдгреНрдпрд╛рдЪреА рдкрд░рд╡рд╛рдирдЧреА рджреЗрддреЗ. рд▓рдБрдЧреНрд╡реЗрдЬ рд░рдирдЯрд╛рдИрдо рдореЛрдареНрдпрд╛ рдкреНрд░рдорд╛рдгрд╛рдд рдкреБрдиреНрд╣рд╛ рддрдпрд╛рд░ рдХреЗрд▓реЗрд▓реНрдпрд╛ рд▓реБрдЖ рд░рдирдЯрд╛рдЗрдо 5.1 рдХреЛрдбрд╡рд░ рдЖрдзрд╛рд░рд┐рдд рдЖрд╣реЗ, рдкрд░рдВрддреБ рдЗрдВрдЯрд░рдкреНрд░рд┐рдЯрд░ рдкреВрд░реНрдгрдкрдгреЗ рдкреБрдиреНрд╣рд╛ рд▓рд┐рд╣рд┐рд▓реЗрд▓рд╛ рдЖрд╣реЗ. рд╡рд┐рдХрд╛рд╕рд╛рджрд░рдореНрдпрд╛рди, рд▓реБрдЖрдЪреНрдпрд╛ рддреБрд▓рдиреЗрдд рдЙрдЪреНрдЪ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдХрд╛рд╣реА рдирд╡реАрди рдСрдкреНрдЯрд┐рдорд╛рдпрдЭреЗрд╢рди рддрдВрддреНрд░реЗ рд╡рд╛рдкрд░рд▓реА рдЧреЗрд▓реА.

рд╣рд╛ рдкреНрд░рдХрд▓реНрдк рд░реЛрдмреНрд▓реЙрдХреНрд╕рдиреЗ рд╡рд┐рдХрд╕рд┐рдд рдХреЗрд▓рд╛ рдЖрд╣реЗ рдЖрдгрд┐ рддреЛ рдЧреЗрдорд┐рдВрдЧ рдкреНрд▓реЕрдЯрдлреЙрд░реНрдо, рдЧреЗрдо рдЖрдгрд┐ рдпрд╛ рдХрдВрдкрдиреАрдЪреНрдпрд╛ рд╡рд╛рдкрд░рдХрд░реНрддрд╛ рдЕрдиреБрдкреНрд░рдпреЛрдЧрд╛рдВрдЪреНрдпрд╛ рдХреЛрдбрдордзреНрдпреЗ рд╡рд╛рдкрд░рд▓рд╛ рдЬрд╛рддреЛ, рдЬреНрдпрд╛рдордзреНрдпреЗ рд░реЛрдмреНрд▓реЙрдХреНрд╕ рд╕реНрдЯреБрдбрд┐рдУ рд╕рдВрдкрд╛рджрдХрд╛рдЪрд╛ рд╕рдорд╛рд╡реЗрд╢ рдЖрд╣реЗ. рд╕реБрд░реБрд╡рд╛рддреАрд▓рд╛, рд▓реБрдЖрдК рдмрдВрдж рджрд░рд╡рд╛рдЬрд╛рдЪреНрдпрд╛ рдорд╛рдЧреЗ рд╡рд┐рдХрд╕рд┐рдд рдХреЗрд▓реЗ рдЧреЗрд▓реЗ рд╣реЛрддреЗ, рдкрд░рдВрддреБ рд╢реЗрд╡рдЯреА рд╕рдореБрджрд╛рдпрд╛рдЪреНрдпрд╛ рд╕рд╣рднрд╛рдЧрд╛рд╕рд╣ рдкреБрдвреАрд▓ рд╕рдВрдпреБрдХреНрдд рд╡рд┐рдХрд╛рд╕рд╛рд╕рд╛рдареА рдЦреБрд▓реНрдпрд╛ рдкреНрд░рдХрд▓реНрдкрд╛рдВрдЪреНрдпрд╛ рд╢реНрд░реЗрдгреАрдордзреНрдпреЗ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдгреНрдпрд╛рдЪрд╛ рдирд┐рд░реНрдгрдп рдШреЗрдгреНрдпрд╛рдд рдЖрд▓рд╛.

рдореБрдЦреНрдп рд╡реИрд╢рд┐рд╖реНрдЯреНрдпреЗ:

  • рд╣рд│реВрд╣рд│реВ рдЯрд╛рдпрдкрд┐рдВрдЧ, рдбрд╛рдпрдиреЕрдорд┐рдХ рдЖрдгрд┐ рд╕реНрдЯреЕрдЯрд┐рдХ рдЯрд╛рдпрдкрд┐рдВрдЧ рджрд░рдореНрдпрд╛рди рдордзреНрдпрд╡рд░реНрддреА рд╕реНрдерд╛рди рд╡реНрдпрд╛рдкрдд рдЖрд╣реЗ. Luau рддреБрдореНрд╣рд╛рд▓рд╛ рд╡рд┐рд╢реЗрд╖ рднрд╛рд╖реНрдпрд╛рдВрджреНрд╡рд╛рд░реЗ рдЯрд╛рдЗрдк рдорд╛рд╣рд┐рддреА рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░реВрди рдЖрд╡рд╢реНрдпрдХрддреЗрдиреБрд╕рд╛рд░ рд╕реНрдерд┐рд░ рдЯрд╛рдпрдкрд┐рдВрдЧ рд╡рд╛рдкрд░рдгреНрдпрд╛рдЪреА рдкрд░рд╡рд╛рдирдЧреА рджреЗрддреЗ. рдЕрдВрдЧрднреВрдд рдкреНрд░рдХрд╛рд░ "рдХреЛрдгрддрд╛рд╣реА", "рд╢реВрдиреНрдп", "рдмреВрд▓рд┐рдпрди", "рд╕рдВрдЦреНрдпрд╛", "рд╕реНрдЯреНрд░рд┐рдВрдЧ" рдЖрдгрд┐ "рдереНрд░реЗрдб" рдкреНрд░рджрд╛рди рдХреЗрд▓реЗ рдЖрд╣реЗрдд. рддреНрдпрд╛рдЪ рд╡реЗрд│реА, рд╡реНрд╣реЗрд░рд┐рдПрдмрд▓реНрд╕ рдЖрдгрд┐ рдлрдВрдХреНрд╢рдиреНрд╕рдЪрд╛ рдкреНрд░рдХрд╛рд░ рд╕реНрдкрд╖реНрдЯрдкрдгреЗ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХреЗрд▓реНрдпрд╛рд╢рд┐рд╡рд╛рдп рдбрд╛рдпрдиреЕрдорд┐рдХ рдЯрд╛рдпрдкрд┐рдВрдЧ рд╡рд╛рдкрд░рдгреНрдпрд╛рдЪреА рд╢рдХреНрдпрддрд╛ рдЬрддрди рдХреЗрд▓реА рдЬрд╛рддреЗ. рдлрдВрдХреНрд╢рди foo(x: рд╕рдВрдЦреНрдпрд╛, y: рд╕реНрдЯреНрд░рд┐рдВрдЧ): рдмреБрд▓рд┐рдпрди рд▓реЛрдХрд▓ k: string = y:rep(x) рд░рд┐рдЯрд░реНрди k == тАЬaтАЭ end
  • "\5.3x**" (рд╣реЗрдХреНрд╕рд╛рдбреЗрд╕рд┐рдорд▓ рд╕рдВрдЦреНрдпрд╛), "\u{**}" (рдпреБрдирд┐рдХреЛрдб рд╡рд░реНрдг) рдЖрдгрд┐ "\z" (рдУрд│реАрдЪрд╛ рд╢реЗрд╡рдЯ), рддрд╕реЗрдЪ рд╕рдВрдЦреНрдпрд╛ рд╕реНрд╡рд░реВрдкрди рджреГрд╢реНрдпрдорд╛рди рдХрд░рдгреНрдпрд╛рдЪреА рдХреНрд╖рдорддрд╛ (рдЖрдкрдг 0 рдРрд╡рдЬреА 1_000_000 рд▓рд┐рд╣реВ рд╢рдХрддрд╛), рд╣реЗрдХреНрд╕рд╛рдбреЗрд╕рд┐рдорд▓ (1000000x...) рдЖрдгрд┐ рдмрд╛рдпрдирд░реА рд╕рдВрдЦреНрдпрд╛рдВрд╕рд╛рдареА рдЕрдХреНрд╖рд░реЗ (0b......).
  • рдирд╡реАрди рд▓реВрдк рдкреБрдирд░рд╛рд╡реГрддреНрддреАрд╡рд░ рдЬрд╛рдгреНрдпрд╛рд╕рд╛рдареА, рд╡рд┐рджреНрдпрдорд╛рди "рдмреНрд░реЗрдХ" рдХреАрд╡рд░реНрдбрд▓рд╛ рдкреВрд░рдХ рдЕрд╕рд▓реЗрд▓реНрдпрд╛ "рдЪрд╛рд▓реВ" рдЕрднрд┐рд╡реНрдпрдХреНрддреАрд╕рд╛рдареА рд╕рдорд░реНрдерди.
  • рдХрдВрдкрд╛рдКрдВрдб рдЕрд╕рд╛рдЗрдирдореЗрдВрдЯ рдСрдкрд░реЗрдЯрд░рд╕рд╛рдареА рд╕рдорд░реНрдерди (+=, -=, *=, /=, %=, ^=, ..=).
  • рдЕрднрд┐рд╡реНрдпрдХреНрддреАрдВрдЪреНрдпрд╛ рд╕реНрд╡рд░реВрдкрд╛рдд рд╕рд╢рд░реНрдд "рддрд░-рддрд░-рдЕрдиреНрдп" рдмреНрд▓реЙрдХреНрд╕рдЪреНрдпрд╛ рд╡рд╛рдкрд░рд╛рд╕рд╛рдареА рд╕рдорд░реНрдерди рдЬреЗ рдмреНрд▓реЙрдХрдЪреНрдпрд╛ рдЕрдВрдорд▓рдмрдЬрд╛рд╡рдгреАрджрд░рдореНрдпрд╛рди рдореЛрдЬрд▓реЗрд▓реЗ рдореВрд▓реНрдп рдкрд░рдд рдХрд░рддреЗ. рддреБрдореНрд╣реА рдмреНрд▓реЙрдХрдордзреНрдпреЗ elseif рдПрдХреНрд╕рдкреНрд░реЗрд╢рдиреНрд╕рдЪреА рдЕрдирд┐рдпрдВрддреНрд░рд┐рдд рд╕рдВрдЦреНрдпрд╛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░реВ рд╢рдХрддрд╛. рд╕реНрдерд╛рдирд┐рдХ рдХрдорд╛рд▓ рдореВрд▓реНрдп = рдЬрд░ a > b рдирдВрддрд░ a else b рд╕реНрдерд╛рдирд┐рдХ рдЪрд┐рдиреНрд╣ = рдЬрд░ x < 0 рддрд░ -1 elseif x > 0 рдирдВрддрд░ 1 else 0
  • рдЕрд▓рдЧрд╛рд╡ рдореЛрдб (рд╕рдБрдбрдмреЙрдХреНрд╕) рдЪреА рдЙрдкрд╕реНрдерд┐рддреА, рдЬреА рддреБрдореНрд╣рд╛рд▓рд╛ рдЕрд╡рд┐рд╢реНрд╡рд╛рд╕реВ рдХреЛрдб рдЪрд╛рд▓рд╡рд┐рдгреНрдпрд╛рд╕ рдЕрдиреБрдорддреА рджреЗрддреЗ. рдпрд╛ рд╡реИрд╢рд┐рд╖реНрдЯреНрдпрд╛рдЪрд╛ рд╡рд╛рдкрд░ рдЖрдкрд▓реНрдпрд╛ рд╕реНрд╡рддрдГрдЪреНрдпрд╛ рдХреЛрдб рдЖрдгрд┐ рджреБрд╕рд▒реНрдпрд╛ рд╡рд┐рдХрд╕рдХрд╛рдиреЗ рд▓рд┐рд╣рд┐рд▓реЗрд▓реНрдпрд╛ рдХреЛрдбрдЪреНрдпрд╛ рдмрд╛рдЬреВрдиреЗ рд▓реЙрдиреНрдЪ рдЖрдпреЛрдЬрд┐рдд рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдХреЗрд▓рд╛ рдЬрд╛рдК рд╢рдХрддреЛ, рдЙрджрд╛рд╣рд░рдгрд╛рд░реНрде, рддреГрддреАрдп-рдкрдХреНрд╖ рд▓рд╛рдпрдмреНрд░рд░реА рдЬреНрдпрд╛рдВрдЪреНрдпрд╛ рд╕реБрд░рдХреНрд╖рд┐рддрддреЗрдЪреА рд╣рдореА рджрд┐рд▓реА рдЬрд╛рдК рд╢рдХрдд рдирд╛рд╣реА.
  • рдорд╛рдирдХ рд▓рд╛рдпрдмреНрд░рд░реАрдЪреА рдорд░реНрдпрд╛рджрд╛ рдЬреНрдпрд╛рдордзреВрди рд╕рдВрднрд╛рд╡реНрдп рд╕реБрд░рдХреНрд╖рд╛ рд╕рдорд╕реНрдпрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд░рдгрд╛рд░реА рдлрдВрдХреНрд╢рдиреНрд╕ рдХрд╛рдврд▓реА рдЧреЗрд▓реА рдЖрд╣реЗрдд. рдЙрджрд╛рд╣рд░рдгрд╛рд░реНрде, рд▓рд╛рдпрдмреНрд░рд░реА тАЬioтАЭ (рдлрд╛рдИрд▓реНрд╕ рдНрдХреНрд╕реЗрд╕ рдХрд░рдгреЗ рдЖрдгрд┐ рд▓реЙрдиреНрдЪрд┐рдВрдЧ рдкреНрд░реЛрд╕реЗрд╕), тАЬрдкреЕрдХреЗрдЬтАЭ (рдлрд╛рдИрд▓реНрд╕ рдНрдХреНрд╕реЗрд╕ рдХрд░рдгреЗ рдЖрдгрд┐ рдореЙрдбреНрдпреБрд▓реНрд╕ рд▓реЛрдб рдХрд░рдгреЗ), тАЬosтАЭ (рдлрд╛рдИрд▓реНрд╕ рдНрдХреНрд╕реЗрд╕ рдХрд░рдгреЗ рдЖрдгрд┐ рдкрд░реНрдпрд╛рд╡рд░рдг рд╡реНрд╣реЗрд░рд┐рдПрдмрд▓реНрд╕ рдмрджрд▓рдгреНрдпрд╛рд╕рд╛рдареА рдлрдВрдХреНрд╢рдиреНрд╕), тАЬрдбреАрдмрдЧтАЭ (рдореЗрдорд░реАрд╕рд╣ рдЕрд╕реБрд░рдХреНрд╖рд┐рдд рдСрдкрд░реЗрд╢рди) , тАЬdofileтАЭ рдЖрдгрд┐ тАЬloadfileтАЭ (FS рдНрдХреНрд╕реЗрд╕).
  • рд╕реНрдерд┐рд░ рдХреЛрдб рд╡рд┐рд╢реНрд▓реЗрд╖рдгрд╛рд╕рд╛рдареА рд╕рд╛рдзрдиреЗ рдкреНрд░рджрд╛рди рдХрд░рдгреЗ, рддреНрд░реБрдЯреА рдУрд│рдЦрдгреЗ (рд▓рд┐рдВрдЯрд░) рдЖрдгрд┐ рдкреНрд░рдХрд╛рд░рд╛рдВрдЪрд╛ рдпреЛрдЧреНрдп рд╡рд╛рдкрд░ рддрдкрд╛рд╕рдгреЗ.
  • рд╕реНрд╡рддрдГрдЪреЗ рдЙрдЪреНрдЪ-рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдкрд╛рд░реНрд╕рд░, рдмрд╛рдЗрдЯрдХреЛрдб рдЗрдВрдЯрд░рдкреНрд░рд┐рдЯрд░ рдЖрдгрд┐ рдХрдВрдкрд╛рдЗрд▓рд░. рд▓реБрдЖрдЙ рдЕрджреНрдпрд╛рдк JIT рд╕рдВрдХрд▓рдирд╛рд▓рд╛ рд╕рдорд░реНрдерди рджреЗрдд рдирд╛рд╣реА, рдкрд░рдВрддреБ рдЕрд╕рд╛ рджрд╛рд╡рд╛ рдХреЗрд▓рд╛ рдЬрд╛рддреЛ рдХреА рд▓реБрдЖрдЙ рдЗрдВрдЯрд░рдкреНрд░рд┐рдЯрд░ рдХрд╛рд╣реА рдкрд░рд┐рд╕реНрдерд┐рддреАрдВрдордзреНрдпреЗ LuaJIT рдЪреНрдпрд╛ рдХрд╛рд░реНрдпрдХреНрд╖рдорддреЗрдд рддреБрд▓рдирд╛рддреНрдордХ рдЖрд╣реЗ.

рд╕реНрддреНрд░реЛрдд: opennet.ru

рдПрдХ рдЯрд┐рдкреНрдкрдгреА рдЬреЛрдбрд╛