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