Lua - ไวยากรณ์พื้นฐาน

เริ่มสร้างโปรแกรม Lua โปรแกรมแรกของเรากันเถอะ!

โปรแกรม Lua แรก

การเขียนโปรแกรมโหมดโต้ตอบ

Lua มีโหมดที่เรียกว่าโหมดโต้ตอบ ในโหมดนี้คุณสามารถพิมพ์คำแนะนำทีละคำสั่งและรับผลลัพธ์ทันที สิ่งนี้สามารถเรียกใช้ในเชลล์โดยใช้คำสั่ง lua -i หรือเพียงแค่คำสั่ง lua เมื่อคุณพิมพ์สิ่งนี้แล้วให้กด Enter จากนั้นโหมดโต้ตอบจะเริ่มทำงานดังที่แสดงด้านล่าง

$ lua -i 
$ Lua 5.1.4  Copyright (C) 1994-2008 Lua.org, PUC-Rio
quit to end; cd, dir and edit also available

คุณสามารถพิมพ์บางสิ่งโดยใช้คำสั่งต่อไปนี้ -

print("test")

เมื่อคุณกด Enter คุณจะได้ผลลัพธ์ดังต่อไปนี้ -

test

การเขียนโปรแกรมโหมดเริ่มต้น

การเรียกใช้ล่ามด้วยพารามิเตอร์ชื่อไฟล์ Lua จะเริ่มต้นการเรียกใช้ไฟล์และดำเนินต่อไปจนกว่าสคริปต์จะเสร็จสิ้น เมื่อสคริปต์เสร็จสิ้นล่ามจะไม่ทำงานอีกต่อไป

ให้เราเขียนโปรแกรม Lua ง่ายๆ ไฟล์ Lua ทั้งหมดจะมีนามสกุล. lua ดังนั้นใส่ซอร์สโค้ดต่อไปนี้ในไฟล์ test.lua

print("test")

สมมติว่าสภาพแวดล้อม lua ได้รับการตั้งค่าอย่างถูกต้องให้รันโปรแกรมโดยใช้รหัสต่อไปนี้ -

$ lua test.lua

เราจะได้ผลลัพธ์ดังต่อไปนี้ -

test

ลองใช้วิธีอื่นในการรันโปรแกรม Lua ด้านล่างนี้คือไฟล์ test.lua ที่แก้ไขแล้ว -

#!/usr/local/bin/lua

print("test")

ที่นี่เราได้สันนิษฐานว่าคุณมีล่าม Lua อยู่ในไดเร็กทอรี / usr / local / bin ของคุณ บรรทัดแรกจะถูกละเว้นโดยล่ามหากเริ่มต้นด้วยเครื่องหมาย # ตอนนี้ลองเรียกใช้โปรแกรมนี้ดังนี้ -

$ chmod a+rx test.lua
$./test.lua

เราจะได้ผลลัพธ์ดังต่อไปนี้

test

ตอนนี้ให้เราดูโครงสร้างพื้นฐานของโปรแกรม Lua เพื่อให้คุณเข้าใจโครงสร้างพื้นฐานของภาษาโปรแกรม Lua ได้ง่าย

โทเค็นในลัวะ

โปรแกรม Lua ประกอบด้วยโทเค็นต่างๆและโทเค็นอาจเป็นคีย์เวิร์ดตัวระบุค่าคงที่สตริงลิเทอรัลหรือสัญลักษณ์ ตัวอย่างเช่นคำสั่ง Lua ต่อไปนี้ประกอบด้วยโทเค็นสามรายการ -

io.write("Hello world, from ",_VERSION,"!\n")

โทเค็นแต่ละรายการคือ -

io.write
(
   "Hello world, from ",_VERSION,"!\n"
)

ความคิดเห็น

ความคิดเห็นเป็นเหมือนข้อความช่วยในโปรแกรม Lua ของคุณและล่ามจะไม่สนใจ เริ่มต้นด้วย - [[และลงท้ายด้วยอักขระ -]] ดังที่แสดงด้านล่าง -

--[[ my first program in Lua --]]

ตัวระบุ

ตัวระบุ Lua คือชื่อที่ใช้เพื่อระบุตัวแปรฟังก์ชันหรือรายการที่ผู้ใช้กำหนดอื่น ๆ ตัวระบุเริ่มต้นด้วยตัวอักษร 'A ถึง Z' หรือ 'a ถึง z' หรือขีดล่าง '_' ตามด้วยตัวอักษรศูนย์หรือมากกว่าขีดล่างและตัวเลข (0 ถึง 9)

Lua ไม่อนุญาตให้ใช้อักขระเครื่องหมายวรรคตอนเช่น @, $ และ% ภายในตัวระบุ ลัวะคือกcase sensitiveภาษาโปรแกรม ดังนั้นกำลังคนและกำลังคนจึงเป็นตัวบ่งชี้สองตัวที่แตกต่างกันในลัวะ นี่คือตัวอย่างบางส่วนของตัวระบุที่ยอมรับได้ -

mohd         zara      abc     move_name    a_123
myname50     _temp     j       a23b9        retVal

คำหลัก

รายการต่อไปนี้แสดงคำสงวนสองสามคำใน Lua ห้ามใช้คำสงวนเหล่านี้เป็นค่าคงที่หรือตัวแปรหรือชื่อตัวระบุอื่นใด

และ หยุดพัก ทำ อื่น
อื่น ๆ จบ เท็จ สำหรับ
ฟังก์ชัน ถ้า ใน ท้องถิ่น
ศูนย์ ไม่ หรือ ทำซ้ำ
กลับ แล้ว จริง จนถึง
ในขณะที่

ช่องว่างใน Lua

บรรทัดที่มีเพียงช่องว่างอาจมีความคิดเห็นเรียกว่าบรรทัดว่างและล่าม Lua ไม่สนใจมันโดยสิ้นเชิง

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

local age

ต้องมีอักขระช่องว่างอย่างน้อยหนึ่งตัว (โดยปกติจะเป็นช่องว่าง) ระหว่างท้องถิ่นและอายุเพื่อให้ล่ามสามารถแยกแยะได้ ในทางกลับกันในข้อความต่อไปนี้ -

fruit = apples + oranges   --get the total fruit

ไม่จำเป็นต้องใช้อักขระเว้นวรรคระหว่างผลไม้และ = หรือระหว่าง = และแอปเปิ้ลแม้ว่าคุณจะมีอิสระที่จะใส่อักขระบางตัวหากต้องการเพื่อจุดประสงค์ในการอ่าน