Variables
1
2
3
4
| a = 5
b = 9
a,b = 0,1
print(a+b)
|
Typage dynamique
La variable connait son type en fonction de la valeur ou de l’objet qui lui ai assigné.
1
2
| a = 1
a = {nom = "monkey"}
|
On peut obtenir le type d’une variable grace à type()
print(a,type(a))
Concatenation
1
2
3
| age = 25
nom = "monkey"
print(" Je suis "..nom.."j'ai \t"..age.."ans")
|
Casse
Incrémentation
Fonctions
1
2
3
4
5
6
7
8
9
10
11
12
13
| function foo(nom)
prenom = "linux"
print("hello "..nom)
return nom.." "..prenom
end
-- autre methode : assigner function() à une variable.
x = function()
print("hello)
end
print(x())
|
On peut renvoyer plusieurs variables dans une fonction.
1
2
3
4
5
| function foo(a,b)
return math.pow(a,b),math.pow(c*b,a)
end
print(foo(2,7))
|
On peut renvoyer dans une table tab = {foo(2,3)}
et utiliser pairs()
pour la lire.
Dans une fonction qui renvoit plusieurs valeurs, on peut extraire que la première valeur var = (foo(2,1))
Ici var n’est pas une table.
ou bien le premier élement de la table tab = ({foo(2,3)})[1]
Ici var n’est pas une table.
Booléen
1
2
| not true == false
(true ~= false) retourne true
|
nil
- Veut dire la variable n’a aucune valeur asignée.
tables
- Affiche l’adresse mémoire de la table.
1
2
3
4
| tab = {nom = "monkey", age = "25"}
print(tab.nom)
print(tab.age)
print(tab[1]) --Faux car tab est un dictionnaire
|
- table 2D
1
2
3
| tab = { data={age="25",emplois="ingenieur"}, data2={passion="retogaming",fruit="melon"} }
print(tab.data.age)
print(tab.data2.fruit)
|
dictionnaire
- En lua tout est une question de table
1
2
3
4
| tab = {} -- cree une table vide
tab[1]=1,tab[2]=2 -- cette ligne ==
tab = {1, 2} -- à cette ligne
tab = {[1]=1,[2]=2} -- == à cete ligne
|
1
2
3
| tab = {} -- ces deux ligne sont les équivalentes
tab.fruit="orange"
tab["fruit"]="orange"
|
1
2
3
4
5
| tab = {} -- ces deux ligne sont les équivalentes
tab["fruit"]={} -- creer une table fruit dans tab
tab["fruit"].couleur="orange" -- creer un doctionnaire dans la table fruit
-- on peut refaire tout ça en une ligne
tab.fruit.couleur ="orange"
|
1
| print(#tab) -- Donne la taille de la table
|
Si c’est un dictionnaire, #tab
revoit 0
Instructions de selection
- While ..do ..end
1
2
3
4
5
6
7
| i = 0
while i < 10 do
print("hello \t"..i)
i = i + 1
end
use break to break
|
- repeat .. until
1
2
3
4
5
6
| i = 0
repeat
print("Hello World!")
i = i+1
until i ==10
use break to break
|
- for .i, limit, step.. do .. end
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
| -- Numeric iteration
for i = 0,10 do
print("hello")
end
-- sequential iteration
tab = {1,2, fruit = "banane", "monkey", 8}
for key,value in pairs(tab) do
print(key,value)
end
--keys : sont les index
--value : sont les valeurs
--fruit = "banane" est un dictionnaire donc donc index est toujours le dernier
--donc c'est le dernier à être affiché
|
- next()
print(next(tab,"pi"))
afficher la prochaie paire (key,value)
pairs()
permet d’itérer sur une paire (key,value)
ipair()
permet d’itérer que sur une paire (index,value)
ce qui veut dire qu’il affiche pas les dictionnaires {nom="monkey"}
- Itération avec next()
1
2
3
4
5
6
| for key,value in next,tab,nil do
print(key,value)
end
--applique next() à tab en commençant par nil(car next nil c'est index 1)
--la boucle for est exécuté jusqu'à ce que next() renvoit nil, nil signifie extrémité de la table
|
- if .. then ..else .. end
1
2
| if.. then ..else ..end
if ..then ..elseif..then..else ..end
|
Portée des variables
- Pour appeler une variable d’un autres fichier :
require("nomFichier")
- Un fichier peut retrouner une valeur en LUA si on met à sa fin
return nomVariable
- On peut créer une variable local à un bloc :
1
2
3
| if true then
local var = 30 -- existe que dans ce bloc
end
|
- une variable global est prioritaire dans le cas d’un require:
1
2
3
4
| var = 30
require ("nomFichier") -- Il y a une variable var = 30 à l'intérieur
print(var) -- Affiche 30
|