Latest web development tutorials

les variables Lua

Les variables avant de les utiliser, doivent être déclarées dans le code qui a créé la variable.

Avant d'effectuer le compilateur de code du compilateur a besoin de savoir comment ouvrir la déclaration zone de mémoire variable pour stocker la valeur de la variable.

les variables Lua Il existe trois types: les variables globales, les variables locales, les champs de la table.

les variables Lua dans toutes les variables globales, ou même un bloc d'instructions en fonction, avec local, sauf si explicitement déclarées comme une variable locale.

La portée des variables locales est de commencer à partir d'une position où l'extrémité du bloc de déclaration.

Les valeurs par défaut des variables sont nulles.

-- test.lua 文件脚本
a = 5               -- 全局变量
local b = 5         -- 局部变量

function joke()
    c = 5           -- 全局变量
    local d = 6     -- 局部变量
end

joke()
print(c,d)          --> 5 nil

do 
    local a = 6     -- 局部变量
    b = 6           -- 全局变量
    print(a,b);     --> 6 6
end

print(a,b)      --> 5 6

Effectuer l'exemple ci-dessus est sortie:

$ lua test.lua 
5	nil
6	6
5	6

affectation

Affectation est de changer la valeur d'une variable et en changeant le champ de la table de la méthode de base.

a = "hello" .. "world"
t.n = t.n + 1
Lua peut affecter plusieurs variables en même temps, une liste de variables et une liste de valeurs pour chaque élément séparé par une virgule, la valeur du côté droit de l'instruction d'affectation à son tour affectée à la variable sur la gauche.
a, b = 10, 2*x       <-->       a=10; b=2*x

Lua rencontré cession va d'abord calculer toutes les valeurs à droite et ensuite effectuer la mission, afin que nous puissions échanger la valeur de cette variable sont:

x, y = y, x                     -- swap 'x' for 'y'
a[i], a[j] = a[j], a[i]         -- swap 'a[i]' for 'a[j]'

Lorsque le nombre du nombre de variables et les valeurs sont incompatibles, Lua sera le nombre de variables a été prise sur la base des stratégies suivantes:

a. 变量个数 > 值的个数             按变量个数补足nil
b. 变量个数 < 值的个数             多余的值会被忽略

Par exemple:

a, b, c = 0, 1
print(a,b,c)             --> 0   1   nil
 
a, b = a+1, b+1, b+2     -- value of b+2 is ignored
print(a,b)               --> 1   2
 
a, b, c = 0
print(a,b,c)             --> 0   nil   nil

Le dernier exemple ci-dessus est une des conditions d'erreur commune Remarque: Si vous voulez assigner plusieurs variables doivent être attribués de manière séquentielle à chaque variable.

a, b, c = 0, 0, 0
print(a,b,c)             --> 0   0   0

Le plus souvent utilisé pour échanger l'affectation d'une valeur variable ou un appel de fonction pour revenir à la variable:

a, b = f()

f () retourne deux valeurs, la première est affectée à un, le second est associé à b.

Devrait être possible d'utiliser des variables locales, il y a deux avantages:

  • 1. Évitez les conflits de noms.
  • 2. variables locales plus rapides que les variables globales.

index

L'indice de la table en utilisant des crochets []. Lua fournit également l'exploitation.

t[i]
t.i                 -- 当索引为字符串类型时的一种简化写法
gettable_event(t,i) -- 采用索引访问本质上是一个类似这样的函数调用

Par exemple:

> site = {}
> site["key"] = "www.w3cschool.cc"
> print(site["key"])
www.w3cschool.cc
> print(site.key)
www.w3cschool.cc