Почему Lua по умолчанию использует глобальные переменные? - PullRequest
19 голосов
/ 07 октября 2010

Мой любимый язык в эти дни - Lua. У меня есть только одна проблема с этим, почему на практике это поведение по умолчанию, что переменные в функциях являются глобальными? В похожем языке Icon есть ключевое слово «global», которое используется, когда кто-то действительно хочет использовать глобальное вместо естественного поведения по умолчанию для локального (я был укушен этим снова пять минут назад). Я бы почувствовал себя лучше, если бы кто-нибудь сказал мне, что стоит за этим (например, трудности с областью видимости, которые, как я знаю, вызывают отсутствие ключевого слова continue) в Lua).

1 Ответ

19 голосов
/ 07 октября 2010

См. Почему переменные не имеют локальной области видимости по умолчанию? в Lua uFAQ .

Безусловно, легко явно объявлять глобальные переменные, только когда они находятся в локальном контексте. Краткий ответ: Lua - это не Python, но на самом деле есть веские причины, по которым локальные переменные с лексической областью должны быть явно объявлены. См. вики-страницу .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...