ภาษา Lua สำหรับโปรแกรมเมอร์ – ตอนที่ 1

ภาษา Lua คืออะไร

เผื่อคุณยังไม่รู้ มันคือภาษาโปรแกรมภาษานึงแหละ ที่เป็นแบบแปลคำสั่งแล้วทำงานเป็นบรรทัดๆไป โดยไม่ต้องคอมไพล์และแปลให้เป็นภาษาเครื่องก่อน จุดเด่นของมันก็คือเร็วส์ ยืดหยุ่น ง่าย และไม่ยากในการศึกษา (ไม่ใช่อันเดียวกันกับ “ง่าย” เหรอ)

สิ่งที่จำเป็นต้องรู้เกี่ยวกับภาษา Lua อย่างเช่น รูปแบบคำสั่ง โอเปอเรเตอร์ ฟังก์ชันต่างๆ

--[[
นี่คือคอมเม้นต์
แบบบหลายบรรทัด
--]]

if state == 5 then
    doSomething() -- นี่คือคอมเม้นต์ในบรรทัด
elseif foo then
    a = true
else
    b = false
end

 

ตัวแปรและประเภทของตัวแปร

ก็เหมือนกับภาษาแบบสคริปต์โดยทั่วไป คือ มันไม่มีชนิดของตัวแปรหรอก แปลว่าเราสามารถตั้งค่าให้ตัวแปรได้เลย อย่างเช่น
var = value
แต่มันก็มีการตั้งค่าให้แบบ global และ local นะ เหมือนภาษาอื่นๆแหละ แถมเราตั้งค่าให้มันทั้งหมดในรวดเดียวแบบนี้ได้เลย

Selection_0004

คำสงวนที่ต้องระวัง ในภาษา Lua มีคำสงวนที่ต้องระวังในการใช้ คำพวกนี้ก็มี nil ซึ่งหมายถึงทั้งตัวแปรที่ไม่ได้ตั้งค่า (undefined) และตัวแปรที่ไม่มีค่า (null) อีกคำสงวนคือ false และ true เวลาใช้ false ใน statement ให้ระวังเพราะใน Lua มีแค่ 2 อันที่เท่ากับ false คือ nil กับ false ที่เหลือทั้งหมดคือ true

Selection_0005

โอเปอเรเตอร์

  • พวก and or หรือ not ก็ตามตัวเลย
  • สัญลักษณ์ “ไม่เท่ากับ” คือ ~=
  • .. เอาไว้เชื่อม string
  • ^ คือเอาไว้ยกกำลัง (ไม่ใช่ binary XOR)
  • # เอาไว้นับความยาวของ tables และ strings (บทต่อไปนะ)

 Loop

while

i = 1

while i <= 5 do
    i = i + 1
    print(i)
end

repeat 

i = 1

repeat
    i = i + 1
    print(i)
until i == 10

for 

x = 1

for i = 1, 10, 2 do
    x = x * i
    print(x)
end

การจบ loop 

while true do
  if condition then
    x = x ^ 2
  else
    break
  end
end

 

Functions

function foo()
  local x, y = something(4, 5)
  return x ^ y
end

function something(arg1, arg2)
  local ret1 = (arg1 * arg2) ^ 2
  local ret2 = (arg1 - arg2) ^ 2
  return ret1 + ret2, ret1 * ret2
end

 

src: http://nova-fusion.com/2012/08/27/lua-for-programmers-part-1/ (ถ้าใจร้อนไปอ่านที่นี่ต่อก่อนก็ได้)

ใส่ความเห็น