Outils pour utilisateurs

Outils du site


nsi:langages:lua:types

Table des matières

Types

  • nil est l'équivalent du Python None. Une variable que l'on utilise avant de l'avoir affectée sera considérée comme nil.

  • boolean, comme en Python. Les valeurs possibles pour les booléens sont true et false.

    Rappel : en Python, c'est True et False.

  • 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.

  • string pour les chaînes de caractères.

    Idem en Python, mais en Python le nom est str.

  • table pour 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 list et dict.

    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 un struct en 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
nsi/langages/lua/types.txt · Dernière modification : de goupillwiki