Lua: Le tutoriel  wxWidgets
Lua
Les bases du langage: Les types et les valeurs.

Lua est un langage à typage dynamique.
Ce qui signifie que les variables n'ont pas de type, contrairement aux valeurs qui elles sont typées.
Il n'existe pas de définition de type en Lua. Toutes les valeurs soutiennent leur propre type.

Avec Lua, toutes les valeurs sont des "first-class values". ( valeurs de première classe. )
Ce qui signifie que toutes les valeurs peuvent être stockées dans des variables, passées comme arguments à d'autres fonctions, et retournées comme résultat.

Il existe huit types de base en Lua: nil, boolean, number, string, function, userdata, thread, table.

  • nil, dont le type de valeur est rien, a la propriété principale d'être différent de toute autre valeur et représente généralement l'absence d'une valeur.
  • boolean, dont les types de valeur sont false et true. Les deux types nil et false représentent ce qui est faux. Toute autre valeur est considérée comme vraie.
  • number, représente un chiffre ou un nombre réel. (double précision à virgule flottante).
  • string, représente des tableaux de caractères. Lua est "8-bit clean": les chaînes de caractères peuvent contenir n'importe quel caractère 8-bit, y compris "\0".
  • function, Lua peut appeler et manipuler des fonctions écrites en Lua et des fonctions écrites en C.
  • userdata, est fourni pour permettre à des données C arbitraires, d'être stockées dans des variables Lua. Ce type correspond à un bloc de mémoire brut et n'a pas d'opération pré-définis dans Lua, à l'exception d'affectation et de test d'identité. Toutefois, en utilisant les méta-tables, le programmeur peut définir certaines opérations pour les valeurs d'userdata. Les valeurs d'userdata ne peuvent pas être créés ou modifiées directement avec Lua, il faut passer par l'intermédiaire de l'API C. Cela garantit l'intégrité des données détenues par le programme hôte.
  • thread, représente des "threads" indépendants de l'exécution qui sont utilisés pour mettre en œuvre des "coroutines". Ne confondez pas les thread de Lua avec les "threads" du système d'exploitation. Lua soutient les "coroutines" sur tous les systèmes, même ceux qui ne supportent pas les "threads".
  • table, ce type met en œuvre des tableaux associatifs, qui peuvent être indexés non seulement avec des nombres, mais aussi avec des valeurs quelconques (sauf nil). Les tableaux peuvent être hétérogène, autrement dit, ils peuvent contenir des valeurs de tous types (à l'exception nil). Les tableaux sont les seules données mécaniquement structurées en Lua. Ils peuvent être utilisés pour représenter des tables ordinaires, des tables de symboles, de jeux, de livres, de graphiques, d'arbres, etc. Pour déclarer les enregistrements, Lua utilise le nom du champ comme index. a.name est une façon plus simple d'écrire a["nom"] et à exactement la même signification. Il existe plusieurs méthodes pratiques pour créer des tableaux en Lua. (Voir le chapitre consacré aux tables).

Les tableaux, les fonctions, les threads, et les userdatas sont considérés comme des objets.

Les variables ne peuvent donc pas contenir ces valeurs en tant que telles, mais seulement des références à ces valeurs.

Les affectations, le passage de paramètres, et les fonctions sont toujours manipulés par les références à ces valeurs et ces opérations n'impliquent aucune forme de copie.

La fonction type retourne une chaîne, décrivant le type d'une valeur donnée.

logo wxWidgets Le savoir ne vaut que s'il est partagé par tous...
logo-internet_32x32.png Dernière mise à jour, le 11 décembre 2012.
Valid XHTML 1.0 Transitional

wxlualogo
Flèche haut
Flèche gauche
Flèche haut
Flèche droite
Connexion à la base de données impossible