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", );
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中点号和冒号的区别的更多相关文章
- Lua中调用函数使用点号和冒号的区别
1.初学者最易混乱Top1——调用函数时用点号还是用冒号? 我们来看看下面的两句代码: mSprite.setPosition(, ); mSprite:setPosition(, ); 对于初次接触 ...
- Lua点号和冒号区别
定义的时候冒号默认接收self参数调用的时候冒号默认传递调用者自己为参数而句号要显示传递或接收self参数 -- 例如:句号定义,需要显示传递或接收 a = { x = } function a.fu ...
- lua --- 点号 和 冒号
冒号的作用:1.定义函数时,给函数添加隐藏的第一个参数 self2.调用函数时,默认把当前调用者作为第一个参数传递进去 如 a:b(c) 可以理解为 a.b(a, c) 以下是用点号的定义和调用函数的 ...
- [转]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 ...
- 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 ...
- php 单引号与双引号区别
一.单引号与双引号区别 1." "双引号里面的字段会经过编译器解释,然后再当作HTML代码输出. 2.' '单引号里面的不进行解释,直接输出. 从字面意思上就可以看出,单引号比双引 ...
- PHP笔记:单引号与双引号区别
PHP笔记:单引号与双引号区别 php中使用字符串时,可以使用单引号或者双引号,这里总结一下二者的不同: 一.解析字符内容 双引号中的变量会会经过编译器解析 单引号中的变量不会被解析 如下: < ...
- css3单冒号和双冒号的区别
css3中对于伪元素的使用,在项目开发中使用得当将会对代码的可读性又很大的提升.但是对于伪类大家或许都知道是一些选择器的使用,这里总结了关于伪元素中单冒号和双冒号的区别: 再官方定义中规定单冒号都为伪 ...
- Lua中点和冒号的区别
在使用lua设计类时'.'和':'的区别主要在于使用'.'必须手动加self参数,使用':',可以隐藏这个参数,使用'.'调用使用':'定义的函数时,要注意,函数的第一个参数为self,如 funct ...
随机推荐
- Mac安装软件时提示已损坏的解决方法
问题描述 最近安装从网上下载的软件,安装完之后打开提示xxx已损坏,打不开,软件无法打开. 其实,这是新系统(macOS Sierra 10.12.X)新安全机制的锅,它默认不允许用户自行下载安装应用 ...
- [转]DbHelper通用数据库访问帮助类
之前我一直都是在博客园中查看各位高手的博文,确实学到了不少知识,不过比较少写博客,现在就把我自己在项目实施过程中使用到比较好的技术框架写出来,希望能让更多的人了解和学习. 通常我们在开发使用数据库访问 ...
- Dubbo实践(十)代理
Invoker调用 代理有几种方式:普通代理.JDK.Javassist库动态代理.Javassist库动态字节码代理. 生成代理的目的是你调用invoker的相关函数后,就等同于是调用DubboIn ...
- [LuoguP2158][SDOI2008]仪仗队
[LuoguP2158][SDOI2008]仪仗队(Link) 现在你有一个\(N \times N\)的矩阵,求你站在\((1,1)\)点能看到的点的总数. 很简洁的题面. 这道题看起来很难,但是稍 ...
- ARP 协议 理解
ARP协议的本质是使局域网内的其他主机能够知道我在哪儿,比如在局域网上有人冲着所有人喊了一句「IP为XXXX的家伙,你在哪儿」,我一听,XXXX不是我的IP吗,我得回答他啊,于是我冲着所有人(也可以是 ...
- SQL Server 数据库每个表占用的空间、大小
查看MSSQL数据库每个表占用的空间大小 sp_spaceused显示行数.保留的磁盘空间以及当前数据库中的表所使用的磁盘空间,或显示由整个数据库保留和使用的磁盘空间. 语法sp_spaceused ...
- Myeclipse2014无法启动,启动十分之一自动闪退,闪退
现象: Myeclipse2014 无法启动 闪退 配图: 解决办法: 删掉 {workspace}/.metadata/.plugins/org.eclipse.e4.workbench/work ...
- thinkphp3.2 上传图片兼容小程序
第一步在配置文件中设置图片的大小和路径 return array( //'配置项'=>'配置值' 'img_save'=>[ 'size' =>[ 'app_gszc_Card'=& ...
- PhpStorm 查看当前类中所有的方法
展示当前类中的所有方法 Ctrl + F12 方法之间移动 alt + 向上箭头/向下箭头
- Delphi的FIFO实现
FIFO主要用于多个不同线程或进程之间数据交换时做缓冲区用,尤其适合实时数据通讯应用中的数据缓冲,接收线程(进程)将数据写入FIFO,处理线程(进程)从FIFO取出数据 本单元中: TMemoryFI ...