У меня есть таблица lua, которую я использую как hashmap, то есть со строковыми клавишами:
local map = { foo = 1, bar = 2 }
Я бы хотел "поп" элемент этой таблицы, идентифицированный его ключом. Существует метод table.remove()
, но он принимает только индекс элемента для удаления (т.е. Число), а не общий ключ. Я хотел бы иметь возможность сделать table.remove(map, 'foo')
, и вот как я его реализовал:
function table.removekey(table, key)
local element = table[key]
table[key] = nil
return element
end
Есть ли лучший способ сделать это?