ตัวแปร Lua
ตัวแปรก่อนการใช้งานจะต้องประกาศในรหัสที่สร้างตัวแปร
ก่อนที่จะทำการคอมไพเลอร์รหัสคอมไพเลอร์จะต้องรู้วิธีที่จะเปิดขึ้นในพื้นที่หน่วยความจำคำสั่งตัวแปรสำหรับการจัดเก็บค่าของตัวแปร
ตัวแปรทั่วโลกตัวแปรท้องถิ่นเขตข้อมูลตาราง: ตัวแปร Lua มีสามประเภท
ตัวแปร Lua ในตัวแปรทั้งหมดทั่วโลกหรือแม้กระทั่งบล็อกของงบในการทำงานกับท้องถิ่นเว้นแต่ประกาศอย่างชัดเจนว่าเป็นตัวแปรท้องถิ่น
ขอบเขตของตัวแปรท้องถิ่นคือการเริ่มต้นจากตำแหน่งที่ส่วนท้ายของบล็อกคำสั่ง
ค่าเริ่มต้นของตัวแปรที่มีศูนย์
-- 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
ดำเนินการส่งออกตัวอย่างข้างต้นคือ
$ lua test.lua 5 nil 6 6 5 6
การมอบหมาย
ที่ได้รับมอบหมายคือการเปลี่ยนค่าของตัวแปรและการเปลี่ยนแปลงเขตข้อมูลตารางวิธีการขั้นพื้นฐาน
a = "hello" .. "world" t.n = t.n + 1Lua สามารถกำหนดตัวแปรหลายอย่างในเวลาเดียวกันรายชื่อของตัวแปรและรายการค่าสำหรับแต่ละองค์ประกอบคั่นด้วยเครื่องหมายจุลภาคค่าของทางด้านขวาของคำสั่งที่ได้รับมอบหมายในการเปิดรับมอบหมายให้ตัวแปรทางด้านซ้ายเป็น
a, b = 10, 2*x <--> a=10; b=2*x
Lua พบครั้งแรกที่ได้รับมอบหมายจะคำนวณค่าทั้งหมดไปทางขวาแล้วดำเนินการที่ได้รับมอบหมายเพื่อให้เราสามารถแลกเปลี่ยนค่าของตัวแปรนี้มีดังนี้
x, y = y, x -- swap 'x' for 'y' a[i], a[j] = a[j], a[i] -- swap 'a[i]' for 'a[j]'
เมื่อจำนวนของจำนวนของตัวแปรและค่านิยมที่มีความไม่สอดคล้องกัน Lua จะมีจำนวนของตัวแปรที่ได้รับการดำเนินการบนพื้นฐานของกลยุทธ์ต่อไปนี้:
a. 变量个数 > 值的个数 按变量个数补足nil b. 变量个数 < 值的个数 多余的值会被忽略
ตัวอย่างเช่น:
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
ตัวอย่างสุดท้ายดังกล่าวข้างต้นเป็นข้อผิดพลาดที่พบบ่อยเงื่อนไขหมายเหตุ: หากคุณต้องการที่จะกำหนดตัวแปรหลายจะต้องกำหนดตามลำดับแต่ละตัวแปร
a, b, c = 0, 0, 0 print(a,b,c) --> 0 0 0
มากขึ้นมักจะใช้ในการแลกเปลี่ยนการกำหนดค่าตัวแปรหรือการเรียกใช้ฟังก์ชันเพื่อกลับไปยังตัวแปร:
a, b = f()
f () จะคืนค่าทั้งสองคนแรกที่ได้รับมอบหมายให้เป็นที่สองได้รับมอบหมายให้ข
ควรจะเป็นไปได้ที่จะใช้ตัวแปรท้องถิ่นมีสองผลประโยชน์:
- 1. หลีกเลี่ยงความขัดแย้งการตั้งชื่อ
- 2. ตัวแปรท้องถิ่นเร็วกว่าตัวแปรทั่วโลก
ดัชนี
ดัชนีของตารางโดยใช้วงเล็บ [] Lua นอกจากนี้ยังมีการดำเนินงาน
t[i] t.i -- 当索引为字符串类型时的一种简化写法 gettable_event(t,i) -- 采用索引访问本质上是一个类似这样的函数调用
ตัวอย่างเช่น:
> site = {} > site["key"] = "www.w3cschool.cc" > print(site["key"]) www.w3cschool.cc > print(site.key) www.w3cschool.cc