Modulo:Enum/man: differenze tra le versioni
Contenuto cancellato Contenuto aggiunto
creazione modulo |
esempio d'uso |
||
Riga 2:
Questo modulo implementa la classe Enum con cui si possono creare enumerazioni. È un metamodulo pensato per essere usato da altri moduli.
== Esempio d'uso ==
Si importa il modulo:
<syntaxhighlight lang=lua>
local Enum = require('Modulo:Enum')
</syntaxhighlight>
Si crea un enum:
<syntaxhighlight lang=lua>
local Option = Enum:new('nome identificativo', {
OPTION_1 = {
value = 'opzione 1'
},
OPTION_2 = {
value = 'opzione 2'
}
})
-- metodo per trovare la costante in base al valore
function Option:findByValue(value)
return self:findBy('value', value)
end
</syntaxhighlight>
A questo punto si usa l'enum tenendo a mente che:
<syntaxhighlight lang=lua>
-- supera il test
assert(Option.OPTION_1 == Option:findByValue('opzione 1'))
-- supera il test
assert(Option == Enum['nome identificativo'])
</syntaxhighlight>
Si può anche decidere di esporre l'elenco delle costanti:
<syntaxhighlight lang=lua>
local p = {}
-- entrypoint per ottenere le costanti di un qualsiasi enum
function p.list_constants(frame)
local enum_id = frame.args[1]
local constants = {}
for _, constant in pairs(Enum[enum_id]) do
table.insert(constants, constant.value)
end
return table.concat(constants, ', ')
end
return p
</syntaxhighlight>
<!-- la pagina del modulo non si può categorizzare direttamente, va fatto da qui --><includeonly>{{Protetta}}[[Categoria:Moduli]]</includeonly><noinclude>[[Categoria:Manuali dei moduli]]</noinclude>
|