Полезные сниппеты и функции

Vespan

loneliness
Проверенный
2,130
1,751
не знаю как названить ну кароче улучшеный поиск в таблице по ключу
Lua:
tableKey = function(self)
    for k,v in pairs(self) do
        for l in k:gmatch("[^.]+") do
            if l == key then
                return v
            end
        end
    end
end
Lua:
local tbl = {
    ['bool8.bool32.int'] = "bool",
    ['fixedString32.encodedString2048.encodedString4096'] = "string32",
    ['compressedFloat'] = "float",
}
print(tableKey(tbl,"int")) -- bool
print(tableKey(tbl,"encodedString2048")) -- string32
print(tableKey(tbl,"booling")) -- nil

--все же лучше чем
local tbl = {
    ['bool8'] = "bool",
    ['bool32'] = "bool",
    ['int'] = "bool",
    ['fixedString32'] = "string32",
    ['encodedString2048'] = "string32",
    ['encodedString4096'] = "string32",
    ['compressedFloat'] = "float",
}