Latest web development tutorials

variabili Lua

Variabili prima dell'uso, devono essere dichiarate nel codice che ha creato la variabile.

Prima di eseguire il codice compilatore ha bisogno di sapere come aprire l'area di memoria variabili dichiarazione per la memorizzazione del valore della variabile.

variabili Lua Ci sono tre tipi: variabili globali, variabili locali, campi di tabella.

variabili Lua in tutte le variabili globali, o anche un blocco di istruzioni in funzione, con locali se non esplicitamente dichiarate come una variabile locale.

La portata delle variabili locali è partire da una posizione in cui l'estremità del blocco di istruzioni.

I valori di default delle variabili sono pari a zero.

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

Eseguire l'uscita precedente esempio è il seguente:

$ lua test.lua 
5	nil
6	6
5	6

assegnazione

Assegnazione è cambiare il valore di una variabile e modificando il campo della tabella metodo di base.

a = "hello" .. "world"
t.n = t.n + 1
Lua può assegnare più variabili allo stesso tempo, un elenco di variabili e un elenco di valori per ciascun elemento separato da una virgola, il valore del lato destro dell'istruzione di assegnazione a sua volta assegnato alla variabile a sinistra.
a, b = 10, 2*x       <-->       a=10; b=2*x

Lua incontrato assegnazione in primo luogo calcola tutti i valori a destra e quindi eseguire l'assegnazione, in modo da poter scambiare il valore di questa variabile sono stati:

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

Quando il numero del numero di variabili e valori sono incoerenti, Lua sarà il numero di variabili è stata presa sulla base delle seguenti strategie:

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

Ad esempio:

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

L'ultimo esempio di cui sopra è una condizione di errore comune Nota: Se si desidera assegnare le variabili multiple devono essere assegnati progressivamente a ciascuna variabile.

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

Più spesso utilizzato per lo scambio di assegnazione di variabili od una chiamata di funzione per tornare alla variabile:

a, b = f()

f () restituisce due valori, il primo è assegnato a una, la seconda è assegnato a b.

Dovrebbe essere possibile utilizzare le variabili locali, ci sono due vantaggi:

  • 1. evitare conflitti di denominazione.
  • 2. variabili locali più veloce di variabili globali.

indice

L'indice della tabella utilizzando le parentesi quadre []. Lua fornisce anche operativo.

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

Ad esempio:

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