ภาษา Lua คืออะไร
เผื่อคุณยังไม่รู้ มันคือภาษาโปรแกรมภาษานึงแหละ ที่เป็นแบบแปลคำสั่งแล้วทำงานเป็นบรรทัดๆไป โดยไม่ต้องคอมไพล์และแปลให้เป็นภาษาเครื่องก่อน จุดเด่นของมันก็คือเร็วส์ ยืดหยุ่น ง่าย และไม่ยากในการศึกษา (ไม่ใช่อันเดียวกันกับ “ง่าย” เหรอ)
สิ่งที่จำเป็นต้องรู้เกี่ยวกับภาษา Lua อย่างเช่น รูปแบบคำสั่ง โอเปอเรเตอร์ ฟังก์ชันต่างๆ
123456789101112--[[นี่คือคอมเม้นต์แบบบหลายบรรทัด--]]if state == 5 thendoSomething() -- นี่คือคอมเม้นต์ในบรรทัดelseif foo thena = trueelseb = falseend
ตัวแปรและประเภทของตัวแปร
ก็เหมือนกับภาษาแบบสคริปต์โดยทั่วไป คือ มันไม่มีชนิดของตัวแปรหรอก แปลว่าเราสามารถตั้งค่าให้ตัวแปรได้เลย อย่างเช่น
var = value
แต่มันก็มีการตั้งค่าให้แบบ global และ local นะ เหมือนภาษาอื่นๆแหละ แถมเราตั้งค่าให้มันทั้งหมดในรวดเดียวแบบนี้ได้เลย
คำสงวนที่ต้องระวัง ในภาษา Lua มีคำสงวนที่ต้องระวังในการใช้ คำพวกนี้ก็มี nil ซึ่งหมายถึงทั้งตัวแปรที่ไม่ได้ตั้งค่า (undefined) และตัวแปรที่ไม่มีค่า (null) อีกคำสงวนคือ false และ true เวลาใช้ false ใน statement ให้ระวังเพราะใน Lua มีแค่ 2 อันที่เท่ากับ false คือ nil กับ false ที่เหลือทั้งหมดคือ true
โอเปอเรเตอร์
- พวก and or หรือ not ก็ตามตัวเลย
- สัญลักษณ์ “ไม่เท่ากับ” คือ ~=
- .. เอาไว้เชื่อม string
- ^ คือเอาไว้ยกกำลัง (ไม่ใช่ binary XOR)
- # เอาไว้นับความยาวของ tables และ strings (บทต่อไปนะ)
Loop
while
123456i = 1while i <= 5 doi = i + 1print(i)end
repeat
123456i = 1repeati = i + 1print(i)until i == 10
for
123456x = 1for i = 1, 10, 2 dox = x * iprint(x)end
การจบ loop
1234567while true doif condition thenx = x ^ 2elsebreakendend
Functions
12345678910function foo()local x, y = something(4, 5)return x ^ yendfunction something(arg1, arg2)local ret1 = (arg1 * arg2) ^ 2local ret2 = (arg1 - arg2) ^ 2return ret1 + ret2, ret1 * ret2end
src: http://nova-fusion.com/2012/08/27/lua-for-programmers-part-1/ (ถ้าใจร้อนไปอ่านที่นี่ต่อก่อนก็ได้)