У меня есть таблица lua, которую я использую как хэш-карту, то есть со строковыми ключами:
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
Есть ли лучший способ сделать это?