Latest web development tutorials

variabel Lua

Variabel sebelum digunakan, harus dinyatakan dalam kode yang dibuat variabel.

Sebelum melakukan compiler kode compiler perlu tahu bagaimana untuk membuka pernyataan wilayah variabel memori untuk menyimpan nilai variabel.

variabel Lua Ada tiga jenis: variabel global, variabel lokal, bidang meja.

variabel Lua di semua variabel global, atau bahkan suatu blok statemen dalam fungsi, dengan lokal kecuali secara eksplisit dinyatakan sebagai variabel lokal.

Ruang lingkup variabel lokal adalah mulai dari posisi di mana akhir blok pernyataan.

Nilai default dari variabel yang nihil.

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

Lakukan contoh di atas output:

$ lua test.lua 
5	nil
6	6
5	6

tugas

Tugas adalah untuk mengubah nilai variabel dan mengubah dasar bidang metode tabel.

a = "hello" .. "world"
t.n = t.n + 1
Lua dapat menetapkan beberapa variabel pada saat yang sama, daftar variabel dan daftar nilai untuk setiap elemen dipisahkan dengan koma, nilai sisi kanan dari pernyataan penugasan pada gilirannya ditugaskan ke variabel di sebelah kiri.
a, b = 10, 2*x       <-->       a=10; b=2*x

Lua ditemui tugas pertama akan menghitung semua nilai ke kanan dan kemudian melakukan tugas, sehingga kita dapat bertukar nilai variabel ini adalah:

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

Ketika jumlah jumlah variabel dan nilai-nilai yang tidak konsisten, Lua akan jumlah variabel telah diambil atas dasar strategi berikut:

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

Sebagai contoh:

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

Contoh terakhir di atas adalah kondisi kesalahan umum Catatan: Jika Anda ingin menetapkan beberapa variabel harus berurutan ditugaskan untuk setiap variabel.

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

Lebih sering digunakan untuk pertukaran nilai variabel tugas atau fungsi panggilan untuk kembali ke variabel:

a, b = f()

f () mengembalikan dua nilai, yang pertama ditugaskan untuk, yang kedua ditugaskan untuk b.

Mungkin untuk menggunakan variabel lokal, ada dua manfaat:

  • 1. Hindari konflik penamaan.
  • 2. variabel lokal lebih cepat dari variabel global.

indeks

Indeks dari tabel menggunakan tanda kurung []. Lua juga menyediakan operasi.

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

Sebagai contoh:

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