print - lua script table insert
Tablas de búsqueda Lua usando índice o valor (2)
La respuesta de @WB es buena, si quieres algo más mágico puedes usar esta variación usando el __newindex
metadato del índice:
local colour = setmetatable({}, {
__newindex = function(self,k,v)
rawset(self,k,v)
rawset(self,v,k)
end
})
colour["red"] = 1
colour["blue"] = 4
colour["purple"] = 5
print(colour["purple"]) -- 5
print(colour[4]) -- blue
Entonces si tengo una tabla de colores:
colour["red"] = 1
colour["blue"] = 4
colour["purple"] = 5
y quiero agregar rojo a azul, puedo obtener fácilmente los valores numéricos de rojo y azul, pero luego, con el valor 5, ¿puedo hacer que vuelva "púrpura" sin escanear toda la tabla?
Necesitará una tabla con partes tanto de matriz como de matriz, si los números de color son únicos. Por ejemplo:
colour["purple"] = 5
colour[5] = "purple"
Puede crear una pequeña función de ayuda que facilite completar la tabla, como por ejemplo:
function addColour(coltab, str, val)
coltab[str] = val
coltab[val] = str
end