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:
![](https://img2020.cnblogs.com/i-beta/1829785/202003/1829785-20200309232316892-955997980.png)
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
![](https://img2020.cnblogs.com/i-beta/1829785/202003/1829785-20200309233654848-279901312.png)
Code exécute les résultats ci-dessus sont les suivantes:
![](https://img2020.cnblogs.com/i-beta/1829785/202003/1829785-20200309233706819-1804293335.png)
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
![](https://img2020.cnblogs.com/i-beta/1829785/202003/1829785-20200309233733772-1530096218.png)
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
![](https://img2020.cnblogs.com/i-beta/1829785/202003/1829785-20200309233844301-2055692753.png)
Les résultats d'exécution de code suivant:
![](https://img2020.cnblogs.com/i-beta/1829785/202003/1829785-20200309233856089-1687503111.png)
Lorsqu'une chaîne numérique pour les opérations arithmétiques, Lua essaye de transformer cette chaîne en un chiffre numérique:
![](https://img2020.cnblogs.com/i-beta/1829785/202003/1829785-20200309234340619-452893568.png)
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
![](https://img2020.cnblogs.com/i-beta/1829785/202003/1829785-20200309234613281-934437313.png)
(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
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
![](https://img2020.cnblogs.com/i-beta/1829785/202003/1829785-20200309234927815-695384658.png)
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
![](https://img2020.cnblogs.com/i-beta/1829785/202003/1829785-20200309235229625-519188423.png)
Résultats d'exécution de script:
![](https://img2020.cnblogs.com/i-beta/1829785/202003/1829785-20200309235240605-488980230.png)
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
![](https://img2020.cnblogs.com/i-beta/1829785/202003/1829785-20200309235333949-1431370472.png)
Résultats d'exécution de script:
![](https://img2020.cnblogs.com/i-beta/1829785/202003/1829785-20200309235349824-1207597205.png)
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
![](https://img2020.cnblogs.com/i-beta/1829785/202003/1829785-20200309235528365-1618578557.png)
Résultats d'exécution de script:
![](https://img2020.cnblogs.com/i-beta/1829785/202003/1829785-20200309235808777-732447472.png)
les paramètres de fonction peuvent être transmises comme une fonction anonyme (fonction Anonymes) est:
Exemples
![](https://img2020.cnblogs.com/i-beta/1829785/202003/1829785-20200309235933977-1126737859.png)
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.