注释
变量
| a = 1 |
| local a = 2 |
| |
| |
| local a = 1 |
| local b = 2 |
| if a == 1 then |
| local b = 3 |
| end |
| |
| print(b) //2 |
字符串
字符串拼接
| print("1" + "2") |
| |
| print("1" .. "2" |
| |
赋值
| local a = 1 |
| local b,c = 2,3 |
| print(c) //3 |
| |
类型判断
| local a |
| print(type(a)) |
| if type(a) == "nil" then |
or 取值,取先遇到的那个不是nil的值
| local a = nil |
| local b = nil |
| local c = nil |
| print(a or b or c or 111) |
bool
lua把 false 和 nil 看作是 false,其他的都为 true,数字 0 也是 true
table,字典和数组
| |
| local a = {"A","B","C"} |
| print(a[1]) |
| |
| |
| table.insert(a, "bar") |
| |
| b[1] = 333 |
| print(b[1]) |
| |
| |
| |
| local b = {name="tom", age=23} |
| print(b.name) |
| print(b["name"]) |
| print(b[1]) |
| |
| |
| function eat1() print("eat1") end |
| b["eat"] = eat1 |
| |
| function b:eat2() print("eat2") end |
| |
| b.age = 1 |
| |
| |
| func = b["eat"] |
| func() |
| |
循环
| for i=1,5 do |
| print(i) |
| end |
| |
| 1 |
| 2 |
| 3 |
| 4 |
| 5 |
| |
| |
| for i=1,10,2 do |
| print(i) |
| end |
| 输出 |
| 1 |
| 3 |
| 5 |
| 7 |
| 9 |
遍历table字典
| a = {} |
| a["A"] = 1 |
| a["B"] = 2 |
| a["C"] = 3 |
| for k, v in pairs(a) do |
| print(k,v) |
| end |
| |
| 输出(无序) |
| B 2 |
| A 1 |
| C 3 |
遍历table数组
| a = {"one", "two", "three"} |
| for i, v in pairs(a) do |
| print(v) |
| end |
| |
| 输出 |
| one |
| two |
| three |
面相对象的一些操作
| |
| local obj = {} |
| |
| obj.age = 1 |
| |
| function obj:hello(name) |
| print(name) |
| print(self.age) |
| end |
| |
| obj.age = 2 |
| obj:hello("tom") |
| obj.hello("tim") |
| |
| |
| Person = {age = 0, name = nil} |
| |
| |
| function Person:new(name, age) |
| local o = {} |
| setmetatable(o, self) |
| self.__index = self |
| self.name = name |
| self.age = age |
| return o |
| end |
| |
| |
| function Person:say () |
| print("我是 ", self.name) |
| end |
| |
| |
| sam = Person:new("张三1",10) |
| sam:say() |
| sam = Person:new("张三2",10) |
| sam:say() |
异常捕获
| function test() |
| print(nil .. "1") |
| end |
| |
| local status, err = pcall(test) |
| print(err) |
抛出异常
用goto实现continue
| for i = 1,10 do |
| if i > 5 then |
| goto continue |
| end |
| print(i) |
| ::continue:: |
| end |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步