Lua
![]() | |
Ӧрыз | трос-ӧро: пыӵатъян, процедура, прототип, объект, функция ӧръёс |
Кылдытӥсез | Роберту Иерузалимски, Валдемар Селиш, Луиш Энрике ди Фигейреду |
Нырысетӥ поттон | 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'лэн жаг октӥсез октылэ.
Чӧлсконъёс
[Тупатыны | бамлэсь кодзэ тупатоно]Валэктонъёс
[Тупатыны | бамлэсь кодзэ тупатоно]- ↑ About Lua Lua.org. Эскеремын 2019-11-23 аре
- ↑ Which language do you use for scripting in your game engine? GameDev.net.
- ↑ Programming in Lua : 1 Lua.org.