理解lua中 . : self
文章目录[点击展开](?)[+]
- 前言
- 点号定义和调用
- 冒号定义和冒号调用
- 运行结果
- 相互调用
- 相互调用运行结果
- 总结
前言
在LUA中,经常可以看到:. self,今天在CSDN上看到一篇博客写的很清楚,转载过来
原文出处:http://blog.csdn.net/wangbin_jxust/article/details/12170233
lua编程中,经常遇到函数的定义和调用,有时候用点号调用,有时候用冒号调用,这里简单的说明一下原理。
点号(.)定义和调用
girl={money=200}
function girl.goToMarket(girl,someMoney)
girl.money= girl.money -someMoney
end
girl.goToMarket(girl,100)
print(girl.money)
可以看出,这里进行了方法的点号定义和点号调用。
冒号(:)定义和冒号调用
boy={money=200}
function boy:goToMarket(someMoney)
self.money = self.money -someMoney
end
boy:goToMarket(100) -- 注意这里的boy:goToMarket(100) -> boy.goToMarket(self,100)
print(boy.money)
这里进行了冒号定义和冒号调用。
运行结果
以上的打印结果都是100。
可以看出,冒号定义和冒号调用其实跟上面的效果一样。把第一个隐藏参数省略了,而该参数self指向调用者自身
相互调用
当然了,我们也可以点号定义冒号调用,或者冒号定义点号调用如:
man={money=200}
function man.goToMarket(self,someMoney)
self.money = self.money -someMoney
end
man:goToMarket(100) -- 注意这里man:goToMarket(100) ->man.goToMarket(self,100)
print(man.money)
相互调用运行结果
总结
冒号只是起了省略第一个参数self的作用,该self指向调用者本身,并没有其他特殊的地方。
本文转自赵青青博客园博客,原文链接:http://www.cnblogs.com/zhaoqingqing/p/3912782.html,如需转载请自行联系原作者
理解lua中 . : self相关推荐
- 两个函数彻底理解Lua中的闭包
本文通过两个函数彻底搞懂Lua中的闭包,相信看完这两个函数,应该能理解什么是Lua闭包.废话不多说,上 code: 1 --[[************************************ ...
- 理解lua中的metatable和__index
Lua 学习笔记--metatable和__index 版权声明:本文为博主 Fisher1006 原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明. 本文链接:ht ...
- 关于lua中userdata的理解
@[TOC] 关于lua中userdata的理解 关于Userdata的理解 Userdata数据结构 userdata是用来存放用户自定义数据结构的实列,userdata的类型有两种类型,分别是li ...
- 对Lua中Userdata的理解
目录 一.概述 二.源码实现 相关函数实现 1,lua_pushlightuserdata 2,lua_newuserdata 3,luaC_newobj(lgc.c) 4,createstrobj( ...
- 简单介绍Lua中三种循环语句的使用
今天小编就为大家分享一篇关于Lua中三种循环语句的使用讲解,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧 Lua的循环和C语言的循环的语法其实差不多,所以, ...
- Lua中的模块与module函数详解
很快就要开始介绍Lua里的"面向对象"了,在此之前,我们先来了解一下Lua的模块. 1.编写一个简单的模块 Lua的模块是什么东西呢?通常我们可以理解为是一个table,这个tab ...
- 理解 Lua 的那些坑爹特性
Lua 那些坑爹的特性 来源 https://blog.lilydjwg.me/2012/12/29/lua-caveats.36879.html 协程只能在 Lua 代码中使用 协程(corouti ...
- 理解分布式系统中的缓存架构(上)
本文主要介绍大型分布式系统中缓存的相关理论,常见的缓存组件以及应用场景. 1. 缓存概述 缓存概述 2. 缓存的分类 缓存主要分为以下四类 缓存的分类 2.1 CDN缓存 基本介绍 CDN(Conte ...
- 深入理解 Lua 虚拟机
作者:nicochen,腾讯 IEG 游戏开发工程师 本文从一个简单示例入手,详细讲解 Lua 字节码文件的存储结构及各字段含义,进而引出 Lua 虚拟机指令集和运行时的核心数据结构 Lua Stat ...
最新文章
- ABAP:Read_Text(SAVE_TEXT)函数的使用方法
- 我的世界java版移除猪灵了吗_我的世界:激怒僵尸猪灵有奖励,用菌光体堆肥,修复126个漏洞!...
- 【Python】logging内置模块基本使用
- 倒计时1天,BDTC2016最新完整版日程公布
- 1、Flutter Widget(IOS Style) - CupertinoApp;
- c语言图像处理毕业设计,基于matlab数字图像处理毕业设计论文.doc
- 适用于物联网数据共享的区块链节点存储优化方案
- 2018CVPR:Non-local Neural Networks(自注意力机制捕获远程依赖)
- 【解决】nacos Ignore the empty nacos configuration and get it based on dataId
- DAVE笔记--Micrium uc-Probo Oscilloscope调试
- 【自然语言处理】【聚类】ECIC:通过迭代分类增强短文本聚类
- not annotated with HTTP method type (ex. GET, POST) 问题解决
- 安卓广告机带4G一体开发
- Qt例程-Qt中使用CAD插件
- 高级验证方法学()-Mentor-笔记
- C4D演绎中国风设计这波电商BANNER背景素材,高级了
- 【灰色逆袭秋冬土豪金退位】
- SAP中使用LSMW批量导入总账科目
- Capacitor 新一代混合应用“神器” 会代替Cordova吗??
- 快速查询出物流信息,统计已签收/未签收各多少
热门文章
- matlab 打开软件报错,matlab程序错误,提示如下【弄了半夜还是不行】 - 数学 - 小木虫 - 学术 科研 互动社区...
- android 界面跳转封装,【Android】Fragment跳转系列
- c标签判断true false jsp_北京尚学堂卓越班252天[第042天]——Jsp
- boot lvm 分区_Linux如何在线对逻辑分区扩容
- 天津计算机的专科学校,天津市电子计算机职业中等专业学校
- 脉位调制解调 matlab,通信原理与matlab仿真v2 第五章 DBPSK调制解调器(1)
- mysql范式与反范式_MySQL 三种范式以及反范式 | 剑花烟雨江南
- php excelreader 中文,如何解决php excel reader导出excel中文乱码?
- vue怎么vw布局好用_vue cli3项目的pc自适应布局_vw
- linux 中断 进程,linux中断分上下部分原因