Lua type de données (2)

types de données Lua

Lua est typé dynamiquement des langues, des variables, des définitions de type ne doivent non seulement attribuer des valeurs aux variables. Les valeurs peuvent être stockées dans des variables, passé comme arguments ou des résultats de retour.

Lua il y a huit types de base sont: nul, booléen, nombre, chaîne, userdata, fonction, fil et table.

Types de données description
néant Le plus simple, seule la valeur de néant appartiennent à cette classe, représentent une valeur non valide (équivalente à la fausse expression conditionnelle).
booléen Il contient deux valeurs: fausses et vraies.
nombre Il représente un vrai type double flottant
chaîne Chaîne est représentée par une guillemets doubles ou simples
une fonction Fonction écrite en C ou Lua
données d'utilisateur C représente toute structure de données stockée dans une variable
fil Représentativité effectué des circuits indépendants, un programme d'exécution de la coopérative
table tables Lua (tableau) est en fait un « tableau associatif » (les tableaux associatifs), l'indice du tableau peut être un nombre, une chaîne ou un type de table. Où en Lua, la création de la table est accomplie par « construire une expression » est l'expression la plus simple, la configuration de {}, pour créer une table vide.

Nous pouvons utiliser la fonction de type pour tester le type d'une variable donnée ou de la valeur:

Exemples

imprimer ( le type ( " Bonjour tout le monde " ))       - > chaîne d' 
impression ( de type ( 10.4 * 3 ))              - > Numéro d' 
impression ( de type ( impression ))               - > fonction d' 
impression ( de type ( Type ))                - > Fonction d' 
impression ( le type ( vrai ))                - > booléen 
impression ( de type (nul ))                 - > nil 
impression ( le type ( le type (X)))             - > string

 


nil (vide)

nul ne pas tout type indique une valeur valide, il n'a qu'une seule valeur - nulle, par exemple, l'impression d'une variable n'est pas affectée, elle affichera une valeur nulle:

 impression ( le type (a)) 

Pour les variables globales et table, nul et une table d'action « suppression » à une variable ou une table de variable globale, il est attribué une valeur nulle, ce qui équivaut à les supprimer, exécutant le code suivant connu:

Les résultats:

 

Il devrait être nul pour comparer deux guillemets  « :

> Type (X)
 nil 
> Type (X) == nil 
faux 
> Type (X) == " néant " 
vrai 
>

type (X) == résultat nul est  fausse  raison est parce que le  genre (type (X)) == chaîne.


boolean (booléen)

type booléen a seulement deux valeurs possibles: true (vrai) et faux (faux), Lua à faux et nul faux considéré, d'autres sont vraies, le nombre 0 est vrai:

Exemples

Code exécute les résultats ci-dessus sont les suivantes:


numéro (numérique)

par défaut Lua est un seul type de numéro - type à double (double précision) (vous pouvez modifier le type par défaut luaconf.h dans la définition), la formulation suivante est considérée comme type de numéro:

Exemples

Les résultats d'exécution de code ci-dessus:


chaîne (string)

Chaîne est représentée par une guillemets doubles ou simples.

2 peut également être utilisé entre crochets « [[]] » signifie chaîne « un ».

Exemples

Les résultats d'exécution de code suivant:

Lorsqu'une chaîne numérique pour les opérations arithmétiques, Lua essaye de transformer cette chaîne en un chiffre numérique:

 

Le code ci-dessus « erreur » + 1 effectue une chaîne donnée de .. utilisations de connexion, tels que:

 

 

 

# Utilisé pour calculer la longueur de la chaîne, en face de la chaîne, les exemples suivants:

Exemples

 


(Tableau)

Où en Lua, la création de la table est accomplie par « construire une expression » est l'expression la plus simple, la configuration de {}, pour créer une table vide. Vous pouvez également ajouter des données dans la table, table d'initialisation directe:

Exemples

- Créer un vide Tableau
TBL1 locale = {}
- Tableau initial direct
tbl2 locale = { "pomme", "poire", "orange", "raisin"}

tables Lua (tableau) est en fait un « tableau associatif » (les tableaux associatifs), l'indice du tableau peut être un nombre ou une chaîne.

Exemples

 

Contrairement à d'autres langues tableau à l'index de tableau 0 comme un défaut initial initial de l'indice dans Lua dans le tableau 1 commencent généralement.

Exemples

Résultats d'exécution de script:

taille de la table ne sont pas une longueur fixe, il y a une augmentation automatique de la longueur de la table en tant que nouvelles données sont ajoutées, la table initiale est non nulle.

Exemples

Résultats d'exécution de script:


function (fonction)

Dans Lua, la fonction est considérée comme « premières valeurs de la classe (première classe Value) », il peut être variable en fonction:

Exemples

Résultats d'exécution de script:

les paramètres de fonction peuvent être transmises comme une fonction anonyme (fonction Anonymes) est:

Exemples

Résultats d'exécution de script:


fil (fil)

Dans Lua, le thread principal est un programme de collaboration (de coroutine). Il est presque comme un fil (fil), ont leur propre pile indépendante, les variables locales, et le pointeur d'instruction, vous pouvez partager des variables globales, et la plupart des autres choses avec d'autres programmes de collaboration.

différence de filetage avec coroutines: plusieurs threads peuvent fonctionner simultanément, et coroutine ne peuvent exécuter une à tout moment, et coroutine en cours d'exécution ne seront pause est mis en suspension (suspension).


UserData (type personnalisé)

userdata est un ensemble de données définis par l'utilisateur, pour représenter un type d'application ou par la bibliothèque de langage C / C créé peut être de tout type quelconque de données des données de C / C ++ (typiquement struct et des pointeurs) stockée dans Lua appel variable.

Je suppose que tu aimes

Origine www.cnblogs.com/dalianpai/p/12452674.html
conseillé
Classement