Uso come chiavi di tabelle
Uso come chiavi in tabelle
Spesso le stringhe sono usate come chiavi in tabelle. Il nostro userdata quando viene creato è sempre un oggetto diverso e di conseguenza due userdata che “wrappano” la stessa stringa risultano in due chiavi diverse in tabella lua. Per questo motivo abbiamo introdotto un metodo “hash” che può essere chiamato per avere una chiave univoca basata sul contenuto della stringa.
Esempio.
-- creazione di una stringa literal
local auto = _U("автомобиль")
local rossa = _U("росса")
local key1 = auto:hash()
local key2 = rossa:hash()
local t = {}
t[key1] = auto
t[key2] = rossa
local auto2 = _U("автомобиль")
local s = t[auto2:hash()] -- s = auto