Гайд Lua. Урок №1 | Локальные и глобальные переменные

Статус
В этой теме нельзя размещать новые ответы.

4el0ve4ik

Известный
Автор темы
Всефорумный модератор
1,548
1,338
Здравствуйте пользователи BlastHack'a
Сегодня мы рассмотрим локальные, глобальные переменные.


Для начала разберемся с локальными и глобальными переменными:
Глобальные переменные доступны в любой части скрипта.
Локальные - только в блоке где она была объявлена.
Пример глобальной переменной:
Lua:
a = 0 -- Объявление глобальной переменной
function main()
  while not isSampAvailable() do wait(100) end
  while true do
    wait(0)
    example() --Вызываем функцию example 
        sampAddChatMessage(a, -1) --Нам в чат напишет "100"
  end
end

function example() -- Регистрируем функцию example
    a = 100 --Присваиваем переменной a значение 100
end
Пример локальной переменной:
Lua:
function main()
  while not isSampAvailable() do wait(100) end
  while true do
    wait(0)
    example()--Вызываем функцию example
        sampAddChatMessage(a, -1) -- Нам в чат напишет "nil", т.е. переменная пустая.
  end
end

function example()--Регистрируем функцию example
    local a = 100 -- Объявляем локальную переменную, она будет иметь значение 100 только в функции example.
end
Что бы вернуть локальную переменную из функции нужно использовать return
Рассмотрим пример на нашем коде скрипта:
Lua:
function main()
  while not isSampAvailable() do wait(100) end
  while true do
    wait(0)
    a = example() --Вызываем функцию example.
    sampAddChatMessage(a, -1)--Нам выведет 100, т.к. функция нам возвращает ее значение.
  end
end

function example()
    local a = 100 --Объявляем локальную переменную.
    return a -- Возвращаем переменную с ее значением.
end
Теперь мы можем использовать переменную a в main(), кстати при возвращении из функции, мы можем записать ее другой переменной, допустим:
Lua:
function main()
  while not isSampAvailable() do wait(100) end
  while true do
    wait(0)
    b = example()
    sampAddChatMessage(b, -1)
  end
end

function example()
    local a = 100
    return a
end
Нам так же в чат выведет "100".

Теперь рассмотрим использование локальных переменных в блоке if:
Lua:
function example()
  local result = true
  if result then
    local a = 100
  end
  return a
end
Такая функция будет возвращать nil, т.к. переменная существует только в блоке if.
Lua:
function example()
  local result = true
  if result then
    local a = 100
    return a
  end
end
А вот это вернет значение переменной a.
 
Последнее редактирование:

egor230

Участник
47
16
Очень хороший урок, очень заинтересовал moonloader, до этого писал cleo скрипты. Как хорошо, что есть такой замечательный форум.
 
  • Нравится
Реакции: TeMAn1221 и atiZZZ
Статус
В этой теме нельзя размещать новые ответы.