Table des matières
Types
nilest l'équivalent du PythonNone. Une variable que l'on utilise avant de l'avoir affectée sera considérée commenil.boolean, comme en Python. Les valeurs possibles pour les booléens sonttrueetfalse.Rappel : en Python, c'est
TrueetFalse.number. Pour lua, il n'y a que des nombres réels, des flottants (floaten Python) en double précision, c'est à dire en 64 bits.function. Les fonctions sont des types de données comme les autres et définir une fonction revient à affecter une fonction à une variable. Ce n'est pas différent en Python.stringpour les chaînes de caractères.Idem en Python, mais en Python le nom est
str.tablepour les tableaux indexés ou associatifs. Il s'agit d'un tableau dynamique c'est à dire que l'on peut changer sa taille et y placer des données de natures différentes.Ce sera l'équivalent en Python de
listetdict.Comme les
{...}en Javascript, la table sert a définir des objets qui sont des dictionnaires dotés d'attributs, certains de ces attributs étant des fonctions.userdata. Lua laisse la possibilité de définir des types de données un peu comme unstructen C.thread. Je laisse cela pour l'instant car je n'ai pas encore eu l'occasion de creuser. Il s'agit de travailler sur les instances d'exécution des fonctions.
fonction type
Comme en Python, on pourra interroger le type d'une donnée. La fonction type renvoie le type sous forme d'une chaîne de texte.
-- fonction type en Lua x = 45 = type(x) -- renvoie "number" if type(x) == "number" then print("c'est un nombre") end
# fonction type en Python x = 45 type(x) # renvoie la classe int if type(x) == int: print("c'est un entier")
Notez la légère différence : pour Python, type renvoie la classe elle même alors que Lua renvoie seulement le nom du type.
transtypage
Comme en Javascript, Lua fait des transtypages automatiques. Par exemple, si on veut concaténer un nombre à une chaîne de texte :
-- Lua x = 45 chaine = "valeur de x = "..x -- l'opérateur .. sert à concaténer
# Python x = 45 chaine = "valeur de x = "+str(x)
Dans le cas Python, on doit expliciter le transtypage de x avec str. Bien sûr, on pourrait utiliser la méthode format() bien plus efficace.
Autre exemple Lua :
x = 18 + "3" -- "3" est transtypé automatiquement en 3
