วิธีการเขียนโปรแกรม Lua ลัว
ลัวสามารถเขียนโปรแกรมได้ 2 โหมด คือ Interactive และ Script fileInteractive เป็นการเขียนโปรแกรมโดยการป้อนและรันคำสั่งทีละบรรทัด เมื่อเปิด SciTe ขึ้นมาให้เรียกใช้หน้าจอ Command line จะแสดงอยู่ด้านล่างดังรูป จากนั้นให้ทดลองเขียนโปรแกรมพิมพ์ข้อความว่า Hello World! แล้วจะแสดงผลลัพธ์โต้ตอบกลับมาทันทีดังรูป
Script file หรือ Default Mode เป็นการเขียนโปรแกรมที่มีโค้ดคำสั่งติดกันหลายบรรทัด จากนั้นจะเซฟเป็นไฟล์นามสกุล .lua ในตัวอย่างคือ test1.lua แล้วสั่งรัน จากนั้นอินเตอร์พรีเตอร์จะแปลภาษาทีละบรรทัดไปจนจบทั้งหมดแล้วจึงแสดงผลลัพธ์ออกมา ดังรูป จะใช้คำสั่ง print พิมพ์ข้อความ 3 บรรทัด เมื่อรันโปรแกรม จะแสดงผลลัพธ์พิมพ์ข้อความออกมา 3 บรรทัดในครั้งเดียว
Syntax ไวยากรณ์ Lua
1. เขียนหนึ่งคำสั่งหรือสเตตเมนต์ละหนึ่งบรรทัด ไม่ต้องมีเครื่องหมายปิดท้าย ดังตัวอย่างจะเขียนโปรแกรมในโหมด Interactive ให้ตัวแปร b เก็บข้อความ Hello Lua จากนั้นใช้คำสั่ง print ข้อความที่เก็บอยู่ในตัวแปร b ออกมาแสดงผลเป็น 'Hello Lua' (โค้ดที่มี > อยู่ด้านหน้าคำสั่งแสดงว่ากำลังเขียนโปรแกรมอยู่ในโหมด Interactive)> b = "Hello Lua"
> print(b)
'Hello Lua'
จากโค้ดจะเห็นว่าคำสั่งในแต่ละบรรทัดหรือสเตตเมนต์ไม่ต้องมีเครื่องหมายปิด บอกว่าจบคำสั่งแล้วนะ คือ ว่าถ้าจบบรรทัดนั่นก็คือจบคำสั่ง
2. สามารถเขียนหลายคำสั่งรวมอยู่ในบรรทัดเดียวได้ แต่ต้องคั่นด้วยเครื่องหมายเซมิโคล่อน ; เช่น
> b = "Hello Lua" ; print(b)
'Hello Lua'
3. การเขียนบล็อกของคำสั่งไม่ต้องใส่เครื่องหมายอะไรบอกขอบเขตมากมาย โดยจะให้สเตตเมนต์ในบล็อกแท็บอยู่ด้านขวา ตัวอย่างในสคริปต์โหมด
4. คอมเมนต์ จะเป็นส่วนคำอธิบานโค้ด จะไม่ถูกแปลภาษา
* ถ้าอยู่ในหนึ่งบรรทัด ให้ใส่เครื่องหมาย -- อยู่ด้านหน้า
* ถ้าอยู่ในหนึ่งบรรทัด ให้ใส่เครื่องหมาย -- อยู่ด้านหน้า
* ถ้าอยู่เป็นบล็อกให้เครื่องหมาย --[[ นำหน้า และปิดท้ายด้วย --]]
5. Identifiers การกำหนดชื่อ : ใช้กำหนดชื่อตัวแปรและฟังก์ชัน
* ขึ้นต้นด้วยตัวอักษร a ถึง z, A ถึง Z หรือเครื่องหมาย _ ขีดล่าง
* ตามด้วยตัวเลข 0 ถึง 9
* ห้ามมีเครื่องหมาย @, $, และ %
* อักษรตัวเล็กใหญ่มีผลต่างกัน เช่น boy, Boy, BOY จะถือว่าคนละชื่อกัน
ตัวอย่างชื่อที่ถูกต้อง
job23 _data room39 Source_name
6. Keyword คำสงวน เป็นคำที่ถูกใช้เป็นคำสั่งการทำงานต่างๆ หากตั้งชื่อไปซ้ำคำเหล่านี้จะทำให้การประมวลผลผิดพลาด จึงขอสงวนคำเหล่านี้ไว้ ได้แก่
and break do else
elseif end false for
function if in local
nil not or repeat
return then true until
while
7. Whitespace การเว้นช่องว่าง
* ต้องเว้นวรรคระหว่าง คำสั่งกับตัวแปรและตัวดำเนินการ 1 เคาะ
เช่น a = 2
a = b + c
* การเว้นระหว่างคำสั่งจะเว้นหนึ่งบรรทัด ได้กล่าวไว้แล้วในตอนต้น