--单行注释 --[[ 多行注释 --]] -- 默认全局变量 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
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· 使用C#创建一个MCP客户端
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· Windows编程----内核对象竟然如此简单?