--单行注释 --[[ 多行注释 --]] -- 默认全局变量 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
请发表评论