Menu
CoddyTech

Зачем использовать локальные переменные?

Часть раздела Основы путешествия по Lua на Coddy. Урок 85 из 90.

Предотвращение конфликтов имён: Самое важное преимущество локальных переменных заключается в том, что они не позволяют случайно перезаписать другие переменные с таким же именем. Если использовать глобальные переменные во всей программе, легко случайно повторно использовать имя переменной и изменить значение, которое вы не собирались менять.

score = 100  -- очки игрока

function countEnemies()
    score = 0  -- предназначена для использования в качестве счётчика только в этой функции
    for i = 1, 3 do
        score = score + 1
    end
    return score
end

countEnemies()
print(score)  -- 3: очки игрока были перезаписаны!

Функция должна была использовать собственный счётчик, но, поскольку score является глобальной переменной, вместо этого она изменила счёт игрока. Добавление local создаёт для функции отдельную переменную, существующую только внутри неё:

function countEnemies()
    local score = 0  -- новая переменная, доступная только внутри этой функции
    for i = 1, 3 do
        score = score + 1
    end
    return score
end

countEnemies()
print(score)  -- 100: глобальная переменная score не изменилась

С локальными переменными у каждой функции и каждого блока есть собственные отдельные переменные, поэтому код в одном месте не может случайно изменить значения, используемые где-то ещё.

Попробуйте сами

В этом уроке нет задания по программированию.

quiz iconПроверьте себя

В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.

Все уроки раздела Основы

Потренируйтесь самостоятельно: Онлайн-компилятор Lua