чем разница между loadstring и обычным определением функции в Lua? - PullRequest
1 голос
/ 07 ноября 2019

Я играю с Луа по ссылке: https://www.lua.org/pil/8.html. И я немного запутался ...

> i = 100
> local i=3
> f=loadstring("i=i+1")
> print(i)
100
> g=function() i=i+1 end
> print(i)
100
> f()
> print(i)
101
> g()
> print(i)
102

Я имею в виду, почему ни f, ни g не используют локальный i?

1 Ответ

1 голос
/ 07 ноября 2019

У вас уже есть ответ на этот вопрос в одном из ваших предыдущих вопросов .

> local i=3

Поскольку вы используете интерпретатор Lua в интерактивном режиме, локальный i виден тольков куске я цитировал выше. Следовательно, и f, и g увеличивают глобальный i, поскольку они не видят локальный i из указанного в куске фрагмента.

Попробуйте записать свой код Lua в файл и затем выполнить их с помощью, например,: lua file.lua.

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