Модуль l для Lua

Небольшая библиотека для языка программирования Lua.

Скачать
Версия 0.4 (7.53 КБ)
Наверх

Table

Функции для работы с таблицами.

Функции

Обратите внимание: таблицы в Lua передются по ссылке, часть функций изменит таблицу.

table.reverse()

Переворачивает таблицу.

Пример

t = {1, 2, 3, 4, 5};

l.dump(table.reverse(t));

--[[ (table)table: 0020BE30 {
    [1] => (number)5
    [2] => (number)4
    [3] => (number)3
    [4] => (number)2
    [5] => (number)1
} ]]

table.slice()

Обрезает таблицу до указанной длины.

Пример

t1 = {1, 2, 3, 4, 5};
t2 = {1, 2, 3, 4, 5};
t3 = {1, 2, 3, 4, 5};

l.dump(table.slice(t1, 2));

--[[ (table)table: 00298440 {
    [2] => (number)2
    [3] => (number)3
    [4] => (number)4
    [5] => (number)5
} ]]

l.dump(table.slice(t2, -2));

--[[ (table)table: 00298418 {
    [4] => (number)4
    [5] => (number)5
} ]]

l.dump(table.slice(t4, 2, -1));

--[[ (table)table: 0056BF48 {
    [2] => (number)2
    [3] => (number)3
    [4] => (number)4
    [5] => (number)5
} ]]

table.merge()

Объединяет таблицы.

Пример

t1 = {1, 2};
t2 = {3, 4};
t3 = {5};

l.dump(table.merge(t1, t2, t3));

--[[ (table)table: 001EBE30 {
    [1] => (number)1
    [2] => (number)2
    [3] => (number)3
    [4] => (number)4
    [5] => (number)5
} ]]

table.dump()

Показывает содержание таблицы.

Пример

t = {1, 2, 3, 4, 5};

print(table.dump(t));

--[[ table: 006EBE30 {
    [1] => (number)1
    [2] => (number)2
    [3] => (number)3
    [4] => (number)4
    [5] => (number)5
} ]]

table.keys()

Возвращает ключи таблицы.

Пример

t = {a = 1, b = 2, c = 3};

l.dump(table.keys(t));

--[[ (table)table: 0033BF48 {
    [1] => (string)a
    [2] => (string)c
    [3] => (string)b
} ]]

table.values()

Возвращает значения таблицы.

Пример

t = {a = 1, b = 2, c = 3};

l.dump(table.values(t));

--[[ (table)table: 003FBF48 {
    [1] => (number)1
    [2] => (number)3
    [3] => (number)2
} ]]

table.copy()

Копирует таблицу.

Пример

t1 = {1, 2, 3, 4, 5};
t2 = table.copy(t1);

t1[3] = nil;

l.dump(t1, t2);

--[[ (table)table: 0032BF48 {
    [1] => (number)1
    [2] => (number)2
    [4] => (number)4
    [5] => (number)5
}
(table)table: 0032BE30 {
    [1] => (number)1
    [2] => (number)2
    [3] => (number)3
    [4] => (number)4
    [5] => (number)5
} ]]

table.map()

Применяет функцию к каждому значению таблицы.

Пример

t = {1, 2, 3, 4, {10, 20}, 5};

function func(v, k)
    print(k, '=>', v);
end;

table.map(t, func);

--[[
1       =>      1
2       =>      2
3       =>      3
4       =>      4
5       =>      table: 0044B7F8
6       =>      5
]]

table.map(t, func, true);

--[[
1       =>      1
2       =>      2
3       =>      3
4       =>      4
1       =>      10
2       =>      20
6       =>      5
]]

table.find()

Ищет значение в таблице и в случае удачи возвращает ключ.

Пример

t = {1, 2, 3, 1, 2, 3};

-- 3
print(table.find(t, 3));

-- 6
print(table.find(t, 3, 4));

table.first()

Возвращает первый элемент таблицы.

Пример

t = {1, 2, 3, 4, 5};

-- 1
print(table.first(t));

table.last()

Возвращает последний элемент таблицы.

Пример

t = {1, 2, 3, 4, 5};

-- 5
print(table.last(t));

table.size()

Возвращает размер таблицы.

Пример

t = {1, 2, 3, a = 10, 4, 5};

-- 5
print(#t);

-- 6
print(table.size(t));

table.shift()

Выталкивает первый элемент таблицы.

Пример

t = {'a', 'b', 'c', 'd'};

-- (string)a
l.dump(table.shift(t));

l.dump(t);

--[[
(table)table: 0044E570 {
    [2] => (string)b
    [3] => (string)c
    [4] => (string)d
}
]]

table.pop()

Выталкивает последний элемент таблицы.

Пример

t = {'a', 'b', 'c', 'd'};

-- (string)d
l.dump(table.pop(t));

l.dump(t);

--[[
(table)table: 0044E570 {
    [1] => (string)a
    [2] => (string)b
    [3] => (string)c
}
]]

table.uniq()

Очищает таблицу от дублей.

Пример

t = {'a', 'b', 'c', 'd', 'a', 'b', 'c', 'd', 'a', 'b', 'c', 'd'};

l.dump(table.uniq(t));

--[[
(table)table: 0044F5E8 {
    [1] => (string)a
    [2] => (string)b
    [3] => (string)c
    [4] => (string)d
}
]]