Ho una tabella lua che uso come un HashMap, vale a dire con le chiavi stringa:Come rimuovere una voce della tabella lua tramite la sua chiave?
local map = { foo = 1, bar = 2 }
vorrei "pop" un elemento di questa tabella identificata dalla sua chiave. Esiste un metodo table.remove()
, ma prende solo l'indice dell'elemento da rimuovere (cioè un numero) e non una chiave generica. Mi piacerebbe essere in grado di fare table.remove(map, 'foo')
ed ecco come ho implementato è:
function table.removekey(table, key)
local element = table[key]
table[key] = nil
return element
end
C'è un modo migliore per farlo?
+1 alla domanda molto utile perché hai dato la "risposta" di cui avevo bisogno; anche se non c'è un modo "migliore". –