История изменений
Исправление LINUX-ORG-RU, (текущая версия) :
Область видимости счётчика ограничена телом цикла.
i = "global" -- глобальная ай
----------------------------
do --создаём локальную область видимости
local i = "local" -- создадим в локальной области локальную переменную
end
print(i) -- вывод будет 'global'
-----------------------------
do
local i = i;
print(i) -- в локальную переменну. локальной области видимости
-- копируем значение глобальной пеменной.
i = "6451654861561"
end
print(i) -- вывод будет 'global'
------------------------------
i=nil -- уничтожаем глобальную переменную, как будто бы её и небыло
-- тож самое происходит тут
for i=1,10 do
end
print(i) -- цикл прошёл, i более не существует
------------------------------
-- А мы её сделаем и даже глобальную!
i = 1;
x = 42
for i=1,10 do -- но что толку ведь в for своя область видимости
print(i)
x=i;
end
print(i); -- как был 1 так и остался
print(x); -- а вот тут мы сохранили то что хотели.
-- По мимо переменных есть их области видимости, переменные инициалзации
-- циклов заперты в цикле, создаются при его начале и уничтожаются после
-- даже если имеют одно и тоже имя с иной локальной или глобальной пеменной
-- циклу пофиг он будет крутится
for i=1,10 do
print(i)
local i = "hello";--просто после такого
print(i)
i = "lololo";--или такого ты потеряешь значение счётчика в текущей итерации
print(i)
-- Но лучше так не делать, ибо UB!!!!!!!!!!!!!! )))))))))))
end
Исходная версия LINUX-ORG-RU, :
Область видимости счётчика ограничена телом цикла.
i = "global" -- глобальная ай
----------------------------
do --создаём локальную область видимости
local i = "local" -- создадим в локальной области локальную переменную
end
print(i) -- вывод будет 'global'
-----------------------------
do
local i = i;
print(i) -- в локальную переменну. локальной области видимости
-- копируем значение глобальной пеменной.
i = "6451654861561"
end
print(i) -- вывод будет 'global'
------------------------------
i=nil -- уничтожаем глобальную переменную, как будто бы её и небыло
-- тож самое происходит тут
for i=1,10 do
end
print(i) -- цикл прошёл, i более не существует
------------------------------
-- А мы её сделаем и даже глобальную!
i = 1;
x = 42
for i=1,10 do -- но что толку ведь в for своя область видимости
print(i)
x=i;
end
print(i); -- как был 1 так и остался
print(x); -- а вот тут мы сохранили то что хотели.
-- По мимо переменных есть их области видимости, переменные инициалзации
-- циклов заперты в цикле, создаются при его начале и уничтожаются после
-- даже если имеют одно и тоже имя с иной локальной или глобальной пеменной
-- циклу пофиг он будет крутится
for i=1,10 do
print(i)
local i = "hello";--просто после такого
print(i)
i = "lololo";--или такого ты потеряешь значение счётчика в текущей итерации
print(i)
end