• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

LUA中点号和冒号的区别

原作者: [db:作者] 来自: [db:来源] 收藏 邀请
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();

 


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
Python和Lua的默认作用域以及闭包发布时间:2022-07-22
下一篇:
centos编译安装vim并支持lua发布时间:2022-07-22
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap