Initializing from a raw value

Enumerations

local Season = {Summer = 0, Fall = 1,
                Winter = 2, Spring = 3}

-- The reverse table: values become the keys
local name_of = {}
for name, value in pairs(Season) do
  name_of[value] = name
end

local winter = name_of[2]
-- winter = Winter

-- An unknown value gives nil, not an error
local unknown = name_of[9]
-- unknown = nil

print("winter = " .. winter)
print("unknown = " .. tostring(unknown))