Lua

Википедиысь материал
Перейти к навигации Перейти к поиску
Lua
Lua-logo-nolabel.svg
Ӧрыз трос-ӧро:
пыӵатъян,
процедура,
прототип,
объект,
функция ӧръёс
Кылдытӥсез Роберту Иерузалимски,
Валдемар Селиш,
Луиш Энрике ди Фигейреду
Нырысетӥ поттон 1993 арын
Тип сӧзнэтэз динамик, юн, ӵӧж
Пӧрмытон кылэз ANSI C
Операци сӧзнэтэз Котькуд
Лицензиез MIT
Файл ним пум .lua
Вотэсбамыз www.lua.org

Lua (порт. lua — толэзь) — векчи, вылӥ лёгетысь, трос-ӧро косонрадъян кыл. Со мукет косонрадъетъёсы пыӵатъянлыгес лэсьтэмын вал. Дась байт-кодэз валатӥсь ANSI C-эн гожъямын бере, Lua котькуд инъетаз уже кутэм луэ. Lua-лэн пыӵатъянлы капчи C API вань.[1]

Lua ӧнерчиослы гинэ ӧвӧл тупатэмын. Соин ик бадӟым саклык капчи радлыклы но дышетонлы висъямын. Кылзэ поттонлыдо косонрадъетъёсыз лэсьтонын юн уже куто (кылсярысь, Lua-ен Adobe Lightroom-лэн графика интерфейс гожъямын вал). Озьы ик компьютер шудонъёслэсь пагӟаоссэс но ватсэтъёссэс кылдыто (соос полысь огез — World of Warcraft)[2].

Пӧртэмлыкъёсыз[Тупатыны | вики-текстэз тупатыны]

Синтаксис[Тупатыны | вики-текстэз тупатыны]

Огшоры «Ӟечбур, Дунне!» косонрадъетэз гожтыны луэ озьы:

print('Ӟечбур, Дунне!')

яке тазьы:

print 'Ӟечбур, Дунне!'

Валэктонъёс кыкто вакчигожен кутско но чурлэн пумозяз кыстӥсько. Трос чуръёсты басьтӥсь валэктонъёс но пусрадъёс кыкто квадрат скобкаен висъясько.

Факториал функциез пӧрмытон пример:[3]

-- факториал функциез тупатон
function fact (n)
  if n == 0 then
    return 1
  else
    return n * fact(n - 1)
  end
end

print('Лыддэс гожтэ:')
local a = io.read('*number') -- лыдзэ кутоно
print(fact(a))

Быдэстон ӧръян[Тупатыны | вики-текстэз тупатыны]

Lua-лэн ньыль герд йӧс вань: while, repeat (со do while-лы укша), лыдъёсын но огшоры for гердъёс.

while condition do
  --condition зэм луыку быдэстоно
end

repeat
  --condition зэм луыку быдэстоно
until condition

for i = start, end, delta do
  --косонъёс
end

Огшоры for герд:

for key, value in pairs(t) do
  print(key, value)
end

Со t таблицаез пырпотэ стандарт pairs функциез уже кутыса солэн nil берыктытозяз.

Озьы ик гердэз мукетаз понэм луэ:

local grid = {
  { 11, 12, 13 },
  { 21, 22, 23 },
  { 31, 32, 33 }
}

for y, row in ipairs(grid) do
  for x, value in ipairs(row) do
    print(x, y, grid[y][x])
  end
end

Функциос[Тупатыны | вики-текстэз тупатыны]

Lua-лэн функциосыз инъетасен лыдъясько. Со возьматэмын татын:

do
  -- Али print функциез oldprint-э пононо
  local oldprint = print
  function print(s)
    --[[ Выльысь print функциез тупатон. Огшоры print-эз маке но уже кутэм луэ
         oldprint вылэ чӧлскыса. Вылез одӥг гинэ аргумент басьтэ.]]
    oldprint(s == "foo" and "bar" or s)
  end
end

Котькуд вуоно print-эз курон выль функцие ыстӥськоз. Нош Lua-лэн лексической ватонлы луыса нырысетӥ print уже кутэм воштэм print пыр гинэ луэ.

Lua нош ик берпумъянъёсты лэзе:

function addto (x)
  -- x-эз аргументлы ватсась функциез берыктоно
  return function (y)
    --[[ Педпалась x вошъяськись, кудӥзлэн улондырызлэн та лушкем функцилэсь
         вакчигес луэмез луэ, вылэ чӧлскыку Lua берпумъянэз кылдытэ.]]
    return x + y
  end
end

local fourplus = addto(4)
print(fourplus(3)) -- 7 возьматоз

-- Озьы ик яра
print(addto(4)(3)) -- берыктэм функциез курон

x кутӥсь берпумъян кылдэ котькуд дыръя, куке addto куремын луэ. Соин ик котькуд берыктэм лушкем функция нимаз x-эз кутэ. Берпумъянзэ мукет объектъёсты кадь октылэ Lua-лэн жаг октӥсь.

Чӧлсконъёс[Тупатыны | вики-текстэз тупатыны]

Валэктонъёс[Тупатыны | вики-текстэз тупатыны]

  1. About Lua Lua.org. Эскеремын 2019-11-23 аре
  2. Which language do you use for scripting in your game engine? GameDev.net.
  3. Programming in Lua : 1 Lua.org.