LUA中点号和冒号的区别
Student = {}; Student.__index = Student; function Student:new(name, age) local temp = {}; setmetatable(temp, Student); temp.name = name; temp.age = age; return temp; end function Student:info() print(self.name, self.age);
--运行stu2时会报错 -- print("name:" .. self.name .. " age:" .. self.age); end --输出:stu1 10 stu1 = Student.new(nil, "stu1", 10); stu1:info(); --输出:10 nil stu2 = Student.new("stu2", 10); stu2:info(); --输出:nil stu3 stu3 = Student:new(nil, "stu3", 10); stu3:info(); --输出:stu4 10 stu4 = Student:new("stu4", 10); stu4:info();
Student = {}; Student.__index = Student; --此处做修改 function Student.new(name, age) local temp = {}; setmetatable(temp, Student); temp.name = name; temp.age = age; return temp; end function Student:info() print(self.name, self.age); end --输出:nil stu1 stu1 = Student.new(nil, "stu1", 10); stu1:info(); --输出:stu2 10 stu2 = Student.new("stu2", 10); stu2:info(); --输出:table: 0037B200 nil stu3 = Student:new(nil, "stu3", 10); stu3:info(); --输出:table: 0037B200 stu4 stu4 = Student:new("stu4", 10); stu4:info(); --输出:table: 0084B200 stu5 stu5 = Student:new("stu5"); stu5:info();
--输出:stu6 10
stu6 = Student:new("stu6", 10);
stu6.info(stu6);
Student = {}; Student.__index = Student; function Student.new(name, age) local temp = {}; setmetatable(temp, Student); temp.name = name; temp.age = age; return temp; end function Student:info() print(self.name, self.age); end function Student:message() print(self.name, self.age); end function Student.school() print("go to school!!!"); end --声明类时用点号:Student.new(name, age) stu = Student:new("zhangsan", 10); stu:info(); --输出信息错误 stu.school(); --stu.message(); --报错 stu.message(stu);--输出信息错误 mes = Student.new("zhangsan", 10); --mes.info(); --报错 mes.info(mes); mes.school(); --声明类时用冒号:Student.new(name, age) --stu = Student:new("zhangsan", 10); --stu:info(); --stu.info(stu); --stu.school(); --mes = Student.new(nil, "mes", 20); --mes:message(); --mes.school();
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· 展开说说关于C#中ORM框架的用法!
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?