Lua - Définition

Source: Wikipédia sous licence CC-BY-SA 3.0.
La liste des auteurs de cet article est disponible ici.

Déclaration de fonctions

      function mafonction(arg1, arg2, ...)       -- code       return résultat1, résultat2      end      

-- ou --

      mafonction = function (arg1, arg2, ...)       -- code       return résultat1, résultat2      end      

Appels de fonction

      res1, res2 = mafonction(var)      

Blocs inconditionnels

Les blocs inconditionnels servent par exemple à déclarer des variables locales à ce bloc :

      do       local mavariable = "chaîne" -- déclaration de variable, optionnel       -- code utilisant mavariable      end      

Déclaration de table

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      

Exemples

Condition

      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      

Boucles

      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 fonction (sur PSP)

      -- [[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      

Hello World (sur PSP)

      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      
Page générée en 0.083 seconde(s) - site hébergé chez Contabo
Ce site fait l'objet d'une déclaration à la CNIL sous le numéro de dossier 1037632
A propos - Informations légales
Version anglaise | Version allemande | Version espagnole | Version portugaise