前言
Lua是動態型別語言,變數不要型別定義,只需要為變數賦值。
- 全域性變數
全域性變數
在預設情況下,變數總是認為是全域性的。
- 全域性變數不需要宣告,給一個變數賦值後即建立了這個全域性變數,訪問一個沒有初始化的全域性變數也不會出錯,只不過得到的結果是:nil。
- 當且僅當一個變數不等於nil時,這個變數即存在。
Lua 資料型別
值可以儲存在變數中,作為引數傳遞或結果返回。
Lua中有8個基本型別分別為:nil、boolean、number、string、userdata、function、thread和table。
nil 這個最簡單,表示一個無效值(在條件表示式中相當於false)。 nil 還有一個"刪除"作用
boolean 包含兩個值:false和true。
number 表示雙精度型別的實浮點數
string 字串由一對雙引號或單引號來表示
function 由 C 或 Lua 編寫的函式
userdata 表示任意儲存在變數中的C資料結構
thread 表示執行的獨立線路,用於執行協同程式
table Lua 中的表(table)其實是一個"關聯陣列"(associative arrays),陣列的索引可以是數字或者是字串。在 Lua 裡,table 的建立是通過"構造表示式"來完成,最簡單構造表示式是{},用來建立一個空表。
- 我們可以使用type函式測試給定變數或者值的型別:
print(type("Hello world")) --> string
- boolean(布林)
boolean 型別只有兩個可選值:true(真) 和 false(假),Lua 把 false 和 nil 看作是”假”,其他的都為”真”:
- string(字串)
字串由一對雙引號或單引號來表示。
也可以用 2 個方括號 "[[]]" 來表示"一塊"字串
字串連線使用的是 ..
使用 # 來計算字串的長度,放在字串前面
- table(表)
在 Lua 裡表的預設初始索引一般以 1 開始。
local tbl = {"apple", "pear", "orange", "grape"}
for key, val in pairs(tbl) do
print("Key", key)
end
table 不會固定長度大小,有新資料新增時 table 長度會自動增長,沒初始的 table 都是 nil。