switch(table, valeur [, ...])
Lua ne fournit pas d'instruction switch ou case, c'est pourquoi nzLua propose une alternative en utilisant une fonction switch.
Le premier argument de switch est une table de recherche contenant un ensemble de fonctions. Le deuxième argument sélectionne la fonction à appeler. Tous les arguments supplémentaires seront transmis à la fonction qui correspond à la valeur de la recherche.
Le premier argument transmis aux fonctions de la table de recherche sera toujours la valeur utilisée pour rechercher la fonction. Les autres arguments seront transmis tels qu'ils ont été fournis à l'instruction switch. Si la valeur de référence n'est pas trouvée dans le tableau, la fonction de commutation appelle la fonction par défaut.
ops={}
ops['+'] = function(op,a,b) return a+b end
ops['-'] = function(op,a,b) return a-b end
ops['*'] = function(op,a,b) return a*b end
ops.default = function(op,a,b)
error( 'Invalid operation: ' || op, 0 )
end
result = switch(ops,'*',6,7)