[Lua] 踏入新手村-Lua 新手村 (1)

踏入新手村第一件事就是要有個新手裝備,也就是幫助我們寫 Lua 的工具,這裡我建議下載 ZeroBrane Studio 這個 IDE,因為他已經包含了 5.1 ~ 5.3 版的 Lua,甚至還有跟像是 Corona SDK 之類的工具做整合,所以非常推薦使用,不過這個系列會以 5.1 版為主。
  • ZeroBrane Studio 介面介紹

 上方紅色那列是工具列,左方黃色是專案 / 目錄管理,而中右方藍色則是主要編輯器,最後下方的綠色是執行結果或互動模式,其中互動模式非常方便,本系列文章會經常使用到。接著讓我們仔細瞧瞧工具列中有什麼:
 左半邊的應該很容易懂,中間框起來的是執行、Debug、Live Coding,這三種的運用就看個人造化了(欸)。而 Zerobrane 官網有很多實用的文件,有興趣的讀者就去查查看吧。


開始學 Lua 吧!
  • 組塊 Chunks
 我覺得組塊這個名詞並沒有翻得很好,但我找不太到更好的翻譯了,所以就將就一下吧。

 什麼是組塊?任何可執行的程式碼片段就是一個 Chunk;或者,從更程式的定義來看:一連串的敘述(Statement)拼在一起,就是一個 Chunk。
 咦?剛剛好像提到了另一個名詞:敘述,這又是什麼?敘述是程式有效果的最小單位,基本上就是一行程式碼。不像 C 或 C++ 需要分號來代表一個指令的結束,Lua 只要有換行,就代表了一個敘述的結束,如果你想在一行之中塞兩個 Statement,你會需要在第一個敘述末端加上分號。

 事實上,我剛剛撒了一個小謊,其實敘述的分隔只要一個空白就夠了,連換行都不用,但我們都不應該這麼做,因為這會讓我們的程式碼可讀性下降,所以,若一定要放在同一行,至少加個分號吧。
  • Hello World 以及互動模式
 來看看在 Lua 中要怎麼寫出 Hello World:
print("Hello World")
 對,就只有這樣!那我們可以來看看 ZeroBrane Studio 中的互動模式要怎麼使用了:
print("Hello World")
Hello World
print(3 + 4)
7
6 - 2
4
9 * 5
45
print(10 / 4)
2.5
 應該很淺顯易懂,比較特別的是 ZeroBrane 的互動模式中,可以不使用 print 就取得輸出。
  • 註解
 在 Lua 中的註解是長這樣的:
-- 以兩個連字號(減號)做為單行註解

--[[
使用兩對中括號來代表
多行(區塊)註解
]]
 有一個註解的技巧是這樣的:在多行註解的最後兩個右括號前加上 --,如此一來如果想在註解 / 非註解間切換的話只要在第一行加上一個 - 就可以了。
--[[ 有註解
print("Hello World")
--]]

---[[ 沒有註解
print("Hello World")
--]]

  • 簡單講變數(Variable)
 接下來我們看看所謂「變數」是怎麼一回事。變數就像是一個能把資料存起來,也能將存放著的資料進行改變的一個工具。以下看看如何使用變數:

a = 7
b = 9
a + b
16
print(a, b)
7   9
a = b * 4
print(a)
36
 看來就如我們所預期的執行,但如果是這樣呢?
print(spam)  -- spam 是什麼?
 好像會出一些錯誤...嗎?其實不會,因為在 Lua 中沒用過、沒宣告的變數註1會有一個叫 nil 的值,很像 Python 裡的 None:
print(spam)  -- spam 是什麼?
nil
 因為所有未使用過的變數都是 nil 這個值,所以在 Lua 的世界裡,只要有變數的值是 nil,即使你曾經使用過他,也都會被當作是不存在的東西;或者反過來說,只要你讓一個變數有了非 nil 的值,他就從此存在了,不需要額外宣告。

註 1:這裡所有的變數都是指全域(global)變數。

 這篇文章把一些一開始就需要的觀念都寫下來了,目前應該這樣就夠了吧。感謝讀到這裡的你,如果有錯誤請儘管指出m(_ _)m

後記:
 好的開始是不會棄坑的一半(?) 希望是這樣啦XD

留言

這個網誌中的熱門文章

[C] 每天來點字串用法 (2) - strcpy()、strncpy()

[Python] *args 和 **kwargs 是什麼?一次搞懂它們!

[C] 每天來點字串用法 (5) - strcat()、strncat()