Lua - ตัวแปร

ตัวแปรไม่ใช่อะไรนอกจากชื่อที่กำหนดให้กับพื้นที่จัดเก็บที่โปรแกรมของเราสามารถจัดการได้ สามารถเก็บค่าประเภทต่างๆรวมทั้งฟังก์ชันและตาราง

ชื่อของตัวแปรสามารถประกอบด้วยตัวอักษรตัวเลขและอักขระขีดล่าง ต้องขึ้นต้นด้วยตัวอักษรหรือขีดล่าง อักษรตัวพิมพ์ใหญ่และตัวพิมพ์เล็กมีความแตกต่างกันเนื่องจาก Lua คำนึงถึงตัวพิมพ์เล็กและใหญ่ ค่าพื้นฐานใน Lua มีแปดประเภท -

ใน Lua แม้ว่าเราจะไม่มีประเภทข้อมูลตัวแปร แต่เรามีสามประเภทตามขอบเขตของตัวแปร

  • Global variables - ตัวแปรทั้งหมดถือเป็นทั่วโลกเว้นแต่จะประกาศอย่างชัดเจนว่าเป็นโลคัล

  • Local variables - เมื่อระบุชนิดเป็นโลคัลสำหรับตัวแปรขอบเขตของมันจะถูก จำกัด ด้วยฟังก์ชันภายในขอบเขต

  • Table fields - นี่คือตัวแปรชนิดพิเศษที่สามารถเก็บอะไรก็ได้ยกเว้นศูนย์รวมถึงฟังก์ชัน

นิยามตัวแปรใน Lua

การกำหนดตัวแปรหมายถึงการบอกล่ามว่าจะสร้างหน่วยเก็บข้อมูลสำหรับตัวแปรได้ที่ไหนและเท่าใด นิยามตัวแปรมีชนิดที่เป็นทางเลือกและมีรายการของตัวแปรประเภทนั้นอย่างน้อยหนึ่งรายการดังนี้ -

type variable_list;

ที่นี่ type เป็นทางเลือกในท้องถิ่นหรือระบุประเภททำให้เป็นโกลบอลและ variable_listอาจประกอบด้วยชื่อตัวบ่งชี้อย่างน้อยหนึ่งชื่อโดยคั่นด้วยเครื่องหมายจุลภาค การประกาศที่ถูกต้องบางส่วนแสดงไว้ที่นี่ -

local    i, j
local    i
local    a,c

เส้น local i, jทั้งประกาศและกำหนดตัวแปร i และ j; ซึ่งสั่งให้ล่ามสร้างตัวแปรชื่อ i, j และ จำกัด ขอบเขตให้เป็นแบบโลคัล

ตัวแปรสามารถเริ่มต้นได้ (กำหนดค่าเริ่มต้น) ในการประกาศ initializer ประกอบด้วยเครื่องหมายเท่ากับตามด้วยนิพจน์คงที่ดังนี้ -

type variable_list = value_list;

ตัวอย่างบางส่วน ได้แก่ -

local d , f = 5 ,10     --declaration of d and f as local variables. 
d , f = 5, 10;          --declaration of d and f as global variables. 
d, f = 10               --[[declaration of d and f as global variables. 
                           Here value of f is nil --]]

สำหรับคำจำกัดความที่ไม่มีตัวเริ่มต้น: ตัวแปรที่มีระยะเวลาการจัดเก็บแบบคงที่จะเริ่มต้นโดยปริยายด้วยศูนย์

การประกาศตัวแปรใน Lua

ดังที่คุณเห็นในตัวอย่างข้างต้นการกำหนดตัวแปรหลายรายการเป็นไปตามรูปแบบ variable_list และ value_list ในตัวอย่างข้างต้นlocal d, f = 5,10 เรามี d และ f ใน variable_list และ 5 และ 10 ในรายการค่า

การกำหนดค่าใน Lua จะเกิดขึ้นเหมือนกับตัวแปรแรกใน variable_list โดยมีค่าแรกใน value_list เป็นต้น ดังนั้นค่าของ d คือ 5 และค่าของ f คือ 10

ตัวอย่าง

ลองใช้ตัวอย่างต่อไปนี้ซึ่งมีการประกาศตัวแปรไว้ที่ด้านบนสุด แต่ได้รับการกำหนดและเริ่มต้นภายในฟังก์ชันหลัก -

-- Variable definition:
local a, b

-- Initialization
a = 10
b = 30

print("value of a:", a)

print("value of b:", b)

-- Swapping of variables
b, a = a, b

print("value of a:", a)

print("value of b:", b)

f = 70.0/3.0
print("value of f", f)

เมื่อสร้างและรันโค้ดด้านบนจะให้ผลลัพธ์ดังนี้ -

value of a:	10
value of b:	30
value of a:	30
value of b:	10
value of f	23.333333333333

Lvalues ​​และ Rvalues ​​ใน Lua

มีการแสดงออกสองประเภทใน Lua -

  • lvalue- นิพจน์ที่อ้างถึงตำแหน่งหน่วยความจำเรียกว่านิพจน์ "lvalue" ค่า lvalue อาจปรากฏเป็นด้านซ้ายหรือด้านขวาของงาน

  • rvalue- คำว่า rvalue หมายถึงค่าข้อมูลที่เก็บไว้ที่ที่อยู่บางส่วนในหน่วยความจำ rvalue คือนิพจน์ที่ไม่สามารถกำหนดค่าให้ได้ซึ่งหมายความว่า rvalue อาจปรากฏทางด้านขวามือ แต่จะไม่ปรากฏทางด้านซ้ายมือของงาน

ตัวแปรคือ lvalues ​​ดังนั้นจึงอาจปรากฏทางด้านซ้ายมือของงาน ตัวอักษรตัวเลขเป็นค่า r จึงไม่สามารถกำหนดได้และไม่สามารถปรากฏทางด้านซ้ายมือ ต่อไปนี้เป็นคำสั่งที่ถูกต้อง -

g = 20

แต่ต่อไปนี้ไม่ใช่คำสั่งที่ถูกต้องและจะสร้างข้อผิดพลาดในการสร้างเวลา -

10 = 20

ในภาษาการเขียนโปรแกรม Lua นอกเหนือจากการกำหนดประเภทข้างต้นแล้วคุณสามารถมี lvalues ​​และ rvalues ​​ได้หลายค่าในคำสั่งเดียว ดังแสดงด้านล่าง

g,l = 20,30

ในข้อความข้างต้น 20 ถูกกำหนดให้กับ g และ 30 ถูกกำหนดให้กับ l