很有意思的是,下面的代碼是有效地,我也是看了書才知道。代碼後面可以跟著,也可以不跟分號。
相關鏈接:Lua程序設計(第2版)中文 PDF http://www.linuxidc.com/Linux/2013-03/81833.htm
a = 5 b = 6
c = 7; d = 8;
print(a, b, c, d)
Lua中,什麼是字母依賴於locale的設置,也就是中文環境下,中文可以用作變量名(?這個需驗證)
Lua有大小寫之分。
常用的塊注釋方式是–[[然後以--]]結尾,這樣如果想取消塊注釋,就把開頭多加個-就行了。
LUA_INIT內容為@文件名,解釋器會先執行這個文件(?需驗證)。
Lua中的(以後省略)函數為第一類值,比如print = type; print(a); 這個是合法合理的,但是print就沒有了,一般用於沙箱sandbox操作。
條件判斷只有兩種情況為假,false以及nil。其余都為真。
number是實數(通常下)。用雙精度代表整數,只要這個數字不大於10的14次方就沒問題(本書這裡筆誤為1014,shit,我對照了PIL第一版確認的)。重新編譯數字類型可以方便用於其它平台luaconf.h。數字可以寫作4.57e-3 0.3e12 5e+20這種科學計數法。
Lua可以存儲任意二進制字符到字符串類型中。5.1支持的長括號寫法[===[匹配]===],只要等號數量移植。字符串與數字運算,數字會轉成字符串,可以用tonumber把字符變成數字。
local str = "5e+20"
local num = tonumber(str)
print(num)
數字轉成字符,可以用tostring或者讓數字與空字符串連接。
5.1的字符串支持#。
local a = {}創建了一個table,並且讓a引用這個table,通過a這個變量我們可以操作這個table,如果沒有變量繼續引用這個table(a = nil),Lua會負責回收內存銷毀它。
a["nameX“] = 5 等價於 a.nameX = 5,注意key裡面的引號。local a = {}; a[x] = 5這個代碼是不合法的。local a = {}; a["x"] = 5; print(a.x);這個會打印出5。
長度操作#的常用做法,print(a[#a])打印最後一個(因為Lua的table索引從1開始),a[#a +1] = n常用與自增,a[#a] = nil刪除最後一個。