Latest web development tutorials

variables de Lua

Las variables antes de su uso, deben ser declarados en el código que crea la variable.

Antes de realizar el compilador código del compilador necesita saber cómo abrir el área de memoria variable de estado para almacenar el valor de la variable.

variables de Lua Hay tres tipos: variables globales, variables locales, campos de la tabla.

variables de Lua en todas las variables globales, o incluso un bloque de instrucciones en la función, con locales a menos que explícitamente declaradas como variable local.

El alcance de las variables locales es comenzar desde una posición en el extremo del bloque de instrucciones.

Los valores por defecto de las variables son nulas.

-- 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

Realizar la salida anterior ejemplo es:

$ lua test.lua 
5	nil
6	6
5	6

asignación

La asignación es para cambiar el valor de una variable y cambiando el campo básico tabla de métodos.

a = "hello" .. "world"
t.n = t.n + 1
Lua puede asignar varias variables al mismo tiempo, una lista de variables y una lista de valores para cada elemento separado por una coma, el valor de la parte derecha de la instrucción de asignación, a su vez asignado a la variable de la izquierda.
a, b = 10, 2*x       <-->       a=10; b=2*x

Lua encontró asignación calculará primero todos los valores a la derecha y después de realizar los trabajos, por lo que puede cambiar el valor de esta variable fueron:

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

Cuando el número de la cantidad de variables y valores son incompatibles, Lua será el número de variables se ha tomado sobre la base de las siguientes estrategias:

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

Por ejemplo:

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

El último ejemplo es una condición de error comunes Nota: Si desea asignar múltiples variables deben ser asignados de forma secuencial a cada variable.

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

Más a menudo se utiliza para intercambiar asignación de valor variable o una llamada de función para volver a la variable:

a, b = f()

f () devuelve dos valores, el primero se asigna a una, la segunda se asigna a b.

Debería ser posible utilizar variables locales, hay dos beneficios:

  • 1. Evitar conflictos de nombres.
  • 2. Variables locales más rápido que las variables globales.

índice

El índice de la tabla utilizando corchetes []. Lua también proporciona operativo.

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

Por ejemplo:

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