function mafonction(arg1, arg2, ...) -- code return résultat1, résultat2 end
-- ou --
mafonction = function (arg1, arg2, ...) -- code return résultat1, résultat2 end
res1, res2 = mafonction(var)
Les blocs inconditionnels servent par exemple à déclarer des variables locales à ce bloc :
Table à indices numériques croissant (premier indice : 1)
a = { 5, "foo", [[C:\Lua\Lua.exe]], 'bar', 42 }
Table à indices textuels -- les clés ayant la syntaxe d'une variable n'ont pas besoin d'être entre guillemets
a = { d = 5, s = "foo", ['chaîne avec espace'] = true }
Table stockant des variables complexes : autres tables, fonctions, références croisées...
fonction = function (a, b) return (a + b) / a * b end t = { b = { -- Fonction comme clé [fonction] = 'Fonction !', -- Index numérique [5] = 42, -- Index chaîne simple (ie. syntaxe d'une variable) ls = [[Valeur Multiligne]] , -- Index chaîne quelconque [Expression rationnelle] = [[(?:\d{1,3}\.){3}\d{1,3}]], [ [[C:\Lua\Lua.exe]] ] = true, }, -- Stockage d'une fonction f = function () return math.random(100) end, ff = fonction, -- Table comme clé [ { 'a', 'b' } ] = { "aa", "bb" }, } -- Référence dans la table t.reference = t.a t[ { t.a, t.b } ] = t.f
if condition1 then -- instructions exécutées si la condition 1 est vraie elseif condition2 then -- instructions exécutées si la condition 2 est vraie et la condition 1 est fausse else -- instructions exécutées si les deux conditions sont fausses end
repeat -- code until condition
et
while condition do -- code end
ainsi que
for var = start, valend, step do -- code end
ou
for var_1, ..., var_n in explist do -- code end
-- [[Exemple de vérification d'identité d'un fichier --]] function sceCheckImgFile() function sceErrorImgFile() System.message(" Demarrage du jeu impossible ",0) System.Quit() end if System.doesFileExist("img/lua.jpg") == 0 then --verification de la presence du fichier a verifier sceErrorImgFile() else md5 = (System.md5sum(io.input("img/lua.jpg"):read())) -- calcule du MD5 du fichier if md5 ~= "8487f9e0e6ad3e928d1455b0df3d9442" then -- verification du MD5 sceErrorImgFile() else fichier = ok end end end
red = Color.new(255, 0, 0) --déclaration de la couleur rouge while true do --commencement de la boucle screen:clear()--on efface l'ecran screen.flip()--on actualise l'ecran screen:print(00,10,"Hello World",red)--on affiche le texte "Hello World" en position {00;10} screen.waitVblankStart()--on attend l'instruction suivante (dans ce cas la on laisse afficher le texte indefiniment) screen.flip()--on actualise l'ecran end --fin de la boucle