Table des matières
Lua C'est un langage dynamique en ce qui concerne les types de données et leurs valeurs, c'est-à-dire qu'il n'y a aucune définition d'aucun type lors de la création d'une variable et en spécifiant qu'il s'agit d'une chaîne, d'un nombre ou même d'un booléen.Les expressions vont de pair avec les valeurs, celles-ci nous permettent d'effectuer des opérations avec elles, qui peuvent aller d'opérations arithmétiques, relationnelles et même conditionnelles pour donner du dynamisme à nos programmes, mais avant de passer aux expressions voyons les types de valeurs qui nous possédons dans Lua et comment ils fonctionnent dans le langage.
Dans Lua Chaque valeur charge son propre type, dans lequel on peut en trouver huit types différents : nil, booléen, nombre, chaîne, données utilisateur, fonction, thread et table, où avec la fonction taper () nous pouvons connaître le nom de type de la valeur donnée. Voyons un exemple simple de la façon dont Lua interpréter cela selon taper ():
NéantIl s'agit d'un type de valeur dont la propriété principale est d'être différent des autres valeurs. Comme nous l'avons vu dans le dernier tutoriel, une variable globale a la valeur par défaut néant et si on veut l'éliminer, on attribue cette valeur, on peut même l'utiliser pour représenter l'absence d'une valeur utile.
booléenLes valeurs booléennes, comme dans le reste des langages de programmation, ont deux valeurs, true et false, mais contrairement à d'autres langages, ce type de données n'a pas de domaine total sur les conditions puisque tout peut représenter une condition.
Le numéroCe type de données représente à la fois des nombres entiers et des nombres décimaux. Lua n'a pas de type valeur entière et n'en a pas besoin, car Lua il peut représenter n'importe quel entier 32 bits sans problèmes d'arrondi, mais le plus intéressant à propos du langage est que nous pouvons le compiler pour utiliser un autre type, comme des entiers longs ou des flottants, ce qui est très utile pour les cas où le matériel n'a pas prise en charge des décimales.
Chaîne de caractèresLes cordes en Lua Ce sont une séquence de caractères, ce sont des valeurs immuables, c'est-à-dire qu'on ne peut pas changer un caractère dans la chaîne. Ils sont gérés par la mémoire automatique du langage comme le reste des objets et l'affectation de la chaîne peut se faire avec des guillemets simples ou doubles.
TableauLe type de données table implémente un tableau associatif, qui est un tableau qui peut être indexé non seulement avec des nombres mais avec des chaînes ou toute autre valeur de langage, à l'exception de nil. Les tableaux n'ont pas de taille fixe, nous pouvons donc inclure autant d'éléments que nous le souhaitons et avec eux, nous pouvons représenter des modules, des packages et des objets. Enfin, sa création est aussi simple que d'utiliser les crochets {} à l'initialisation de la table.
CaractéristiquesLes fonctions en Lua ils ont un comportement assez particulier, on peut les enregistrer dans des variables, les passer en arguments à d'autres fonctions et les retourner même en résultats, où Lua vous pouvez appeler ces fonctions écrites à la fois dans le langage lui-même et en C.
Données d'utilisateurLe type de données données d'utilisateur permet de stocker dans des variables de Lua des informations arbitraires de C. Il n'a pas d'opérations prédéfinies sur Lua, à l'exception des tests d'affectation et d'égalité, où la fonction principale de ce type est de représenter de nouveaux types en tant que tels créés par une application ou une bibliothèque écrite en C.
Comme on peut le voir, les types ne diffèrent pas beaucoup de ce que l'on peut trouver dans les langages actuels, mais ce qui est sûr c'est que la simplicité qu'on a pour les représenter est bien plus grande, alors voyons le rôle des expressions et comment on peut les utiliser avec nos valeurs.
Les opérations arithmétiques sont extrêmement importantes pour tout programme et il est important de savoir comment les gérer et quelles restrictions peuvent exister dans le langage que nous utilisons. Lua il prend en charge les opérateurs conventionnels auxquels nous sommes habitués : addition, soustraction, multiplication, division, exponentiel, pourcentage et négation.
Voyons alors un code simple où nous démontrons l'utilisation de certains opérateurs de Lua:
x = 8 + 5 y = 9 - 2 impression (x * y% 0,01)Nous utilisons l'addition, la soustraction et la division par 2 sur le résultat d'une opération de multiplication, voyons comment la réponse de l'interpréteur lorsque nous exécutons notre code via la console :
AGRANDIR
Lua comme d'autres langages, il nous donne des opérateurs relationnels tels que supérieur à>, inférieur à <, inférieur ou égal =, égal-égal == et négation ~ =. Nous voyons que le seul qui diffère peut-être est le déni, mais une fois que nous nous y habituerons, il n'y aura aucun problème avec son utilisation.
Tous ces opérateurs peuvent retourner vrai ou faux, où nous pouvons même appliquer à la fois l'opérateur d'égalité et l'opérateur de négation à deux valeurs. Ces comparaisons Lua il les fait en fonction du type en plus d'autres facteurs, voyons dans le code suivant où la comparaison est faite sur la base du même objet :
a = {}; a.x = 1 ; a.y = 0 b = {} ; b.x = 1 ; b.y = 0 c = aLà où si on compare les mêmes, le résultat de l'opération nous donne que a est égal à c mais que a est différent de b, cela est dû au fait qu'ils sont le même objet. De plus, nous devons être très prudents lorsque nous comparons différents types, car par exemple 6 est différent de "6" et si nous faisons quelque chose comme "3" <"8" Lua cela donnera une erreur puisque nous mélangeons les chaînes.
Les opérateurs logiques de Lua ce sont les et, ou et non. Lorsqu'une comparaison est faite à l'aide de ces opérateurs, le premier argument sera retourné s'il est faux, sinon le second sera retourné.Voyons une série d'exemples dans la console interactive pour démontrer ce qui précède.
AGRANDIR
AGRANDIR
Enfin, nous avons les constructeurs, qui sont des expressions qui nous permettent de créer et d'initialiser des tables, cette fonctionnalité est propre à Lua et c'est l'un de ses mécanismes les plus polyvalents et les plus puissants. Nous pouvons utiliser un constructeur vide sans aucun problème avec juste les crochets {} ce qui créera une table vide en tant que telle. Ceux-ci peuvent également initialiser des tableaux ou des listes, voyons un exemple :
jours = {"Dimanche", "Lundi", "Mardi", "Mercredi", "Jeudi", "Vendredi", "Samedi"}Ici nous créons une liste avec les jours de la semaine et si nous voulons accéder à ses éléments en spécifiant l'index de la même que nous avons, par exemple pour obtenir jeudi ce serait l'index numéro 5 ou dimanche ce serait le numéro 1, puisque Lua Il ne s'initialise pas à zéro comme le reste des langages, voyons à quoi il ressemble quand on le lance dans notre console :
tableau = {x = 26, y = 67}
Mais il est important que pour accéder à ses valeurs on fasse la référence à l'index avec des guillemets doubles, on obtiendra la valeur nil, on voit notre fonctionnement dans la console interactive :