這個初版是為 Lua 5.0 所寫。儘管對後續版本來說仍然有很大的關聯性,但還是有些差異。
第四版針對 Lua 5.3,可在 Amazon 和其他書店購買。
購買這本書,您同時也協助 支援 Lua 專案


2 – 型別和值

Lua 是一種動態型別語言。語言中沒有型別定義;每個值都攜帶自己的型別。

Lua 中有八種基本型別:nil布林值數字字串使用者資料函式執行緒表格type 函式會提供特定值之型別名稱

    print(type("Hello world"))  --> string
    print(type(10.4*3))         --> number
    print(type(print))          --> function
    print(type(type))           --> function
    print(type(true))           --> boolean
    print(type(nil))            --> nil
    print(type(type(X)))        --> string
最後一個範例會產生 "string",不論 X 的值為何,因為 type 的結果永遠都是字串。

變數沒有預先定義的型別;任何變數都可以包含任何型別的值

    print(type(a))   --> nil   (`a' is not initialized)
    a = 10
    print(type(a))   --> number
    a = "a string!!"
    print(type(a))   --> string
    a = print        -- yes, this is valid!
    a(type(a))       --> function
注意最後兩行:函式在 Lua 中是一等值;因此,我們可以像處理任何其他值一樣處理函式。(更多相關資訊請參閱 第 6 章。)

通常,當您對不同的型別使用單一變數時,結果會是雜亂的程式碼。然而,有時明智地使用這個功能會有幫助,例如使用 nil 來區分正常回傳值和例外狀況。