Lua/luajit 点与冒号的区别
时间:2022-07-23
本文章向大家介绍Lua/luajit 点与冒号的区别,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
local _Tab = {[1] = "Hello Lua",x = 10}
--通过点调用一个普通的方法
function _Tab.BasicFunc()
print("I'm a BasicFunc n")
end
_Tab.BasicFunc()
--通过点来调用并且传递一个自身
function _Tab.FuncWithSelf(selfTable)
print("FuncWithSelf".." _Tab ")
print(_Tab)
print("FuncWithSelf".." selfTable ")
print(selfTable , "n")
end
_Tab.FuncWithSelf(_Tab)
--通过点来调用,传递一个自身并且再传递一个值
function _Tab.FuncWithSelfArg(selfTable,otherArg)
print("_Tab")
print(_Tab)
print("FuncWithSelfArg".." selfTable ")
print(selfTable )
print("FuncWithSelfArg".." otherArg ")
print(otherArg, "n")
end
_Tab.FuncWithSelfArg(_Tab, 12)
_Tab:FuncWithSelfArg(12)
--通过冒号来实现一个无参数方法
function _Tab:ColonFuncNoParam()
print("ColonFuncNoParam".." _Tab ")
print(_Tab)
print("ColonFuncNoParam".." self ")
print(self,"n")
end
_Tab.ColonFuncNoParam(_Tab)
_Tab.ColonFuncNoParam()
_Tab:ColonFuncNoParam()
--通过冒号来实现一个有参数的方法
function _Tab:ColonFuncWithParam(arg)
print("ColonFuncWithParam".." self ")
print(self)
print("ColonFuncWithParam".." arg ")
print(arg,"n")
end
_Tab.ColonFuncWithParam(12)
_Tab.ColonFuncWithParam(_Tab,12)
_Tab:ColonFuncWithParam(12)
输出:
I'm a BasicFunc
FuncWithSelf _Tab
table: 0x7fe94ec09c70
FuncWithSelf selfTable
table: 0x7fe94ec09c70
_Tab
table: 0x7fe94ec09c70
FuncWithSelfArg selfTable
table: 0x7fe94ec09c70
FuncWithSelfArg otherArg
12
_Tab
table: 0x7fe94ec09c70
FuncWithSelfArg selfTable
table: 0x7fe94ec09c70
FuncWithSelfArg otherArg
12
ColonFuncNoParam _Tab
table: 0x7fe94ec09c70
ColonFuncNoParam self
table: 0x7fe94ec09c70
ColonFuncNoParam _Tab
table: 0x7fe94ec09c70
ColonFuncNoParam self
nil
ColonFuncNoParam _Tab
table: 0x7fe94ec09c70
ColonFuncNoParam self
table: 0x7fe94ec09c70
ColonFuncWithParam self
12
ColonFuncWithParam arg
nil
ColonFuncWithParam self
table: 0x7fe94ec09c70
ColonFuncWithParam arg
12
ColonFuncWithParam self
table: 0x7fe94ec09c70
ColonFuncWithParam arg
12
总结 :
无论在定义method或 function时用的点号, 还是冒号, Lua/Luajit 中最终是以使用时的点号或冒号为准, 并且Object.method(self, arg...) 相当于 Object:method(arg...), 即冒号会自动传入self 到第一个参数, 这样显得更简洁优雅.
- Windows 7上执行Cake 报错原因是Powershell 版本问题
- 温故而知新:类索引器
- Visual Studio Code 代理设置
- 温故而知新:设计模式之工厂模式(Factory)
- 通过Jexus 部署 dotnetcore版本MusicStore 示例程序
- jquery.mobile手机网页简要
- 跟张志东深聊腾讯的“进化力”
- 详解微信小程序如何实现流程进度功能
- silverlight:如何在图片上挖个洞?
- .NET Core系列 : 1、.NET Core 环境搭建和命令行CLI入门
- mysqldump数据导出问题和客户端授权后连接失败问题
- Android置底一个View后运行报错
- 温故而知新:设计模式之抽象工厂(AbstractFactory)
- mysql操作命令梳理(1)-索引
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 每日一题:最大堆的实现
- 每日一题:什么是子网掩码
- ConstraintLayout优势在哪
- 聊聊claudb的MasterReplication
- R语言中的Theil-Sen回归分析
- R语言关于回归系数的解释
- R语言对二分连续变量进行逻辑回归数据分析
- SAS中用单因素ANOVA研究不同疗法对焦虑症的有效性
- R语言逻辑回归预测分析付费用户
- R语言中使用多重聚合预测算法(MAPA)进行时间序列分析
- R语言中的岭回归、套索回归、主成分回归:线性模型选择和正则化
- R语言基于树的方法:决策树,随机森林,套袋Bagging,增强树
- R语言无监督学习:PCA主成分分析可视化
- 如何用r语言制作交互可视化报告图表
- R语言大数据分析纽约市的311万条投诉统计可视化与时间序列分析