--單行註釋 --[[ 多行註釋 --]] -- 默認全局變量 a = "I am yoyo!" print(a) --I am yoyo! print(b) --nil a = nil --刪除一個全局變量 print(a) --> nil -- local 局部變量,訪問局部變量的速度比全局變量更快,儘可能使用局部變量 local c = 5 function joke() d = 5 -- 全局變量 local e = 6 -- 局部變量 end joke() print(d, e) --> 5 nil do local a = 6 -- 局部變量 b = 6 -- 全局變量 print(a,b); --> 6 6 end print(a,b) --> 5 6 --賦值 a, b = 10, 2*x <--> a=10; b=2*x 能夠多個賦值 --會先計算右邊全部的值,再賦值 x, y = y, x -- swap 'x' for 'y' a[i], a[j] = a[j], a[i] -- swap 'a[i]' for 'a[j]' -- 右邊值不夠,nil補足 a, b, c = 0, 1 print(a,b,c) --> 0 1 nil -- 右邊值過多,忽略 a, b = a+1, b+1, b+2 -- value of b+2 is ignored print(a,b) --> 1 2 -- 數據類型:nil boolean string number function userdata thread table print(type(10.4*3)) --> number print(type(print)) --> function print(type(type)) --> function print(type(true)) --> boolean, true-真 false和nil爲假 print(type(nil)) --> nil -- 數據類型:string print(type(type(X))) --> string print(type("Hello world")) --> string
-- 單引號內:string
string2 = 'runoob.com' print("字符串 2 是",string2)
-- 能夠用 2 個方括號 "[[]]" 來表示"一塊"字符串 html = [[ <html> <head> </head> <body> </body> </html> ]] print("2" + 6) --8.0 對字符進行算術操做,會將字符轉爲數字 -- ..表示字符串鏈接操做 print("a" .. 'b') --ab print(157 .. 428) --157428 -- # 計算字符串的長度 len = "www.runoob.com" print(#len) --14 -- 數據類型:table -- 建立一個空的 table local tbl1 = {} -- 直接初始表 local tbl2 = {"apple", "pear", "orange", "grape"} --能夠是map,類型能夠並存,不存在key,則value爲nil a = {} a["key"] = "value" --當索引爲字符串類型時,可使用 a.key key = 10 a[key] = 22 a[key] = a[key] + 11 for k, v in pairs(a) do print(k .. " : " .. v) --key : value --10 : 33 end -- table索引以 1 開始 local tbl = {"apple", "pear", "orange", "grape"} for key, val in pairs(tbl) do print("Key", key) --Key 1 --Key 2 --Key 3 --Key 4 end -- 數據類型:function function factorial1(n) if n == 0 then return 1 else return n * factorial1(n - 1) end end print(factorial1(5)) --120 factorial2 = factorial1 print(factorial2(5)) --120 --函數能夠做爲參數傳入 function testFun(tab,fun) for k ,v in pairs(tab) do print(fun(k,v)); end end tab={key1="val1",key2="val2"}; testFun(tab, function(key,val) --匿名函數 return key.."="..val; --key1 = val1 --key2 = val2 end ); -- 數據類型:thread