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", );
stu1:info(); --输出:10 nil
stu2 = Student.new("stu2", );
stu2:info(); --输出:nil stu3
stu3 = Student:new(nil, "stu3", );
stu3:info(); --输出:stu4 10
stu4 = Student:new("stu4", );
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", );
stu1:info(); --输出:stu2 10
stu2 = Student.new("stu2", );
stu2:info(); --输出:table: 0037B200 nil
stu3 = Student:new(nil, "stu3", );
stu3:info(); --输出:table: 0037B200 stu4
stu4 = Student:new("stu4", );
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", );
stu:info(); --输出信息错误
stu.school();
--stu.message(); --报错
stu.message(stu);--输出信息错误 mes = Student.new("zhangsan", );
--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();

LUA中点号和冒号的区别的更多相关文章

  1. Lua中调用函数使用点号和冒号的区别

    1.初学者最易混乱Top1——调用函数时用点号还是用冒号? 我们来看看下面的两句代码: mSprite.setPosition(, ); mSprite:setPosition(, ); 对于初次接触 ...

  2. Lua点号和冒号区别

    定义的时候冒号默认接收self参数调用的时候冒号默认传递调用者自己为参数而句号要显示传递或接收self参数 -- 例如:句号定义,需要显示传递或接收 a = { x = } function a.fu ...

  3. lua --- 点号 和 冒号

    冒号的作用:1.定义函数时,给函数添加隐藏的第一个参数 self2.调用函数时,默认把当前调用者作为第一个参数传递进去 如 a:b(c) 可以理解为 a.b(a, c) 以下是用点号的定义和调用函数的 ...

  4. [转]lua面向对象编程之点号与冒号的差异详细比较

    首先,先来一段在lua创建一个类与对象的代码 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 Class = {} Class.__index = Cl ...

  5. lua面向对象编程之点号与冒号的差异详细比较

    首先,先来一段在lua创建一个类与对象的代码 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 Class = {} Class.__index = Cl ...

  6. php 单引号与双引号区别

    一.单引号与双引号区别 1." "双引号里面的字段会经过编译器解释,然后再当作HTML代码输出. 2.' '单引号里面的不进行解释,直接输出. 从字面意思上就可以看出,单引号比双引 ...

  7. PHP笔记:单引号与双引号区别

    PHP笔记:单引号与双引号区别 php中使用字符串时,可以使用单引号或者双引号,这里总结一下二者的不同: 一.解析字符内容 双引号中的变量会会经过编译器解析 单引号中的变量不会被解析 如下: < ...

  8. css3单冒号和双冒号的区别

    css3中对于伪元素的使用,在项目开发中使用得当将会对代码的可读性又很大的提升.但是对于伪类大家或许都知道是一些选择器的使用,这里总结了关于伪元素中单冒号和双冒号的区别: 再官方定义中规定单冒号都为伪 ...

  9. Lua中点和冒号的区别

    在使用lua设计类时'.'和':'的区别主要在于使用'.'必须手动加self参数,使用':',可以隐藏这个参数,使用'.'调用使用':'定义的函数时,要注意,函数的第一个参数为self,如 funct ...

随机推荐

  1. Hadoop学习之路(二十二)MapReduce的输入和输出

    MapReduce的输入 作为一个会编写MR程序的人来说,知道map方法的参数是默认的数据读取组件读取到的一行数据 1.是谁在读取? 是谁在调用这个map方法? 查看源码Mapper.java知道是r ...

  2. [19/04/25-星期四] GOF23_结构型模式(适配器模式、代理模式)

    一.引言 结构模式:核心作用就是从程序的结构上实现松耦合,从而扩大整体的类结构,用来解决更大的问题. 二.适配器模式(adapter) 生活中假设笔记本是标准的USB接口但是外置键盘是圆形接口,这时候 ...

  3. FLV封装格式分析

    FLV官方文档:https://github.com/jiayayao/DataSheet/tree/master/media%20format/flv 一.FLV格式 FLV包括文件头(FLV he ...

  4. 解密蓝牙mesh系列

    解密蓝牙mesh系列 https://mp.weixin.qq.com/s/KdVhkgcmHIboA0xPFqFCgQ 1.NRF52832 & NRF52840 BLE mesh 协议栈 ...

  5. File、Paths和Files类的使用详解

    Paths:通过get()方法返回一个Path对象,Path用于表示文件路径和文件. Files:提供了大量处理文件的方法,例如文件复制.读取.写入,获取文件属性.快捷遍历文件目录等..... Fil ...

  6. MVC和MVT的区别

    首先,MVC和MVT是框架式不是设计模式. 框架与设计模式虽然相似,但却有着根本的不同.设计模式是对在某种环境中反复出现的问题以及解决该问题的方案的描述,它比框架更抽象:框架可以用代码表示,也能直接执 ...

  7. WebGl 利用缓冲区对象画多个点

    效果: 代码: <!DOCTYPE html> <html lang="en"> <head> <meta charset="U ...

  8. jQuery属性操作之.attr()

    目录 .attr() 调用形式:$("xxx").attr(name) 调用形式:$("xxx").attr(name,value); 调用形式:$(" ...

  9. 1、win10下的Docker+Redis 的下载及简单使用

    一.下载Docker: 因为始终注册docker账号不成功,所以在这里点击下载. 选中docker-for-windows/ 选中beta/ 下载这个.msi文件 二.安装 1.安装.msi文件,桌面 ...

  10. CentOS6安装各种大数据软件 第三章:Linux基础软件的安装

    相关文章链接 CentOS6安装各种大数据软件 第一章:各个软件版本介绍 CentOS6安装各种大数据软件 第二章:Linux各个软件启动命令 CentOS6安装各种大数据软件 第三章:Linux基础 ...