Область действия самой внешней переменной Lua 4

#lua #scope

#lua #область видимости

Вопрос:

Должен ли я явно объявлять переменную во внешней области видимости сценария Lua 4 локальной переменной по сравнению с глобальной переменной? Должен ли я избегать одного или другого? Спасибо.

Например:

 local foo = 5
  

по сравнению

 faa = 8
  

Ответ №1:

Я полагаю, вы уже знаете, что local переменные — это переменные, которые существуют только в определенной области видимости, в то время как обычные переменные являются global и включены в _G таблицу. Однако, согласно руководству по производительности Lua, это также помогает ускорить ваш код:

Прекомпилятор Lua способен сохранять все локальные переменные в регистрах. В результате доступ к локальным переменным в Lua осуществляется очень быстро. Например, если a и b являются локальными переменными, оператор Lua, подобный a = a b , генерирует одну единственную инструкцию.

Итак, легко обосновать одно из самых важных правил для повышения производительности программ Lua: используйте локальные!

Комментарии:

1. Верно ли это для всех областей, включая самую внешнюю?

2. @posfan12 в случае самой внешней области основной целью использования local является повышение производительности скрипта, но в случае внутренних областей его функциональность может существовать только внутри области