最新要闻
- 港人北上消费升温 香港零售业对人流量持乐观态度_世界新消息
- 世界百事通!理想MPV设计手稿曝光 李想:设计灵感不是和谐号 而是鲸鱼
- 女儿高考完提出3个要求妈妈崩溃:养了个祖宗|天天速看
- 土星卫星首次发现高浓度磷元素 地外生命真的存在?
- 美商海盗船发布新款DARKSTAR鼠标:15个可编程按键
- 2399元的RTX 4060即将开卖 专家称英伟达还得涨:显卡份额突破76%
- [路演]金杨股份首次公开发行股票并在创业板上市网上路演今日在全景网成功举办
- 世界简讯:网易云心动模式为什么会播不是喜欢的音乐(网易云的心动模式在哪)
- 新美男记_关于新美男记简介
- 当前资讯!高考考生们这些“套路”骗局要当心:千万别信
- 环球观热点:小哥十米高跳江救人!老家张家界奖励10万元外加一套房
- 16针显卡供电接口闯大祸!第一次把电源烧了
- 全球实时:HDD硬盘被垄断 倪光南院士:SSD取代的时机到了
- iPhone 15 Pro Max影像这下拉满了!看不到短板
- 景区观光车这价格,吃相太难看了
- 环球热讯:两部门印发文件部署高校毕业生档案转递接收工作
广告
手机
iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?
警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案
- iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?
- 警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案
- 男子被关545天申国赔:获赔18万多 驳回精神抚慰金
- 3天内26名本土感染者,辽宁确诊人数已超安徽
- 广西柳州一男子因纠纷杀害三人后自首
- 洱海坠机4名机组人员被批准为烈士 数千干部群众悼念
家电
lua中 . 和 : 的区别
最近项目中使用到了 lua,因为之前没怎么接触过,特此记录下自己在学习过程中疑惑的地方。
在使用lua
进行编码的过程中,我们经常会使用到.
和:
,但是对于刚开始接触lua
的我来说,对这两者的使用还是感到时常感到疑惑,接下来我们一起看看几个例子,来感受两者的区别。如果发现文中错误的地方,请不吝赐教,谢谢!
1、基础介绍
接下来,我们看看下面的例子,来了解.
和:
的基础用法。
(资料图片)
Car = {Name="BYD", Price=12}print("Car 的地址 --->", Car)print(Car.Name) -- 访问属性-- print(Car:Name) 报错print(string.rep("*", 20))function Car:find1()print(": 定义的函数并且使用 : 调用时 self 的地址--->", self)endfunction Car.find2()print(". 定义的函数并且使用 . 调用时 self 的地址--->", self)endCar:find1()Car.find2()print(string.rep("*", 20))function Car:find3()print(": 定义的函数并且使用 . 调用时 self 的地址--->", self)endfunction Car.find4()print(". 定义的函数并且使用 : 调用时 self 的地址--->", self)endCar.find3()Car:find4()
运行结果:
Car 的地址 ---> table: 038F9CA0BYD********************: 定义的函数并且使用 : 调用时 self 的地址---> table: 038F9CA0. 定义的函数并且使用 . 调用时 self 的地址---> nil********************: 定义的函数并且使用 . 调用时 self 的地址---> nil. 定义的函数并且使用 : 调用时 self 的地址---> nil
大家测试的时候,可以自己试一试。
从上面我们知道:
- 使用点号
.
来访问 table 的属性,不能使用:
来访问 table 的属性。 - 使用
.
和:
都可以用来访问 table 的函数。 - 使用
:
定义的函数并且使用:
调用时,定义的函数中默认有一个变量self
。而不是使用:
定义的函数并且使用:
调用时,定义的函数中的是没有self
变量的。
2、稍微深入的了解
通过上面的介绍,我们对 .
和:
有一个简单的了解,接下我们再稍微深入的了解下。这里先说结论,然后再看例子。
.
和:
的区别在于使用 :
- 使用
:
定义的函数时,函数隐含 self参数,使用:
调用函数会自动传入 table至 self参数。而使用.
定义的函数并没有这样。 - Lua 中使用
:
可以实现面向对象方式的调用。:
只是语法糖,它同时在方法的声明与实现中增加了一个名为self
的隐藏参数,这个参数就是对象本身。
2.1 :
定义的函数的示例
classA={}print("ClassA 地址 -->", classA)function classA:getob(name) print("classA:getob 中self 的地址 -->", self) ob={} setmetatable(ob,self) self.__index=self self.name=name return obendfunction classA:getself() return selfendc1=classA:getob("A")print("c1 地址 -->", c1)c2=classA:getob("B")print("c2 地址 -->", c2)print(string.rep("*",30))print(c1:getself())print(c2:getself())print(string.rep("*",30))----------------------继承------------------------classB=classA:getob() ----非常重要,用于获取继承的selffunction classB:getob(name,address) ob=classA:getob(name) setmetatable(ob,self) self.__index=self self.address=address return obendc3=classB:getob("gray.yang","shenzhen")print("c3 地址 -->", c3)print(c3:getself())
运行结果:
ClassA 地址 --> table: 0392D128classA:getob 中self 的地址 --> table: 0392D128c1 地址 --> table: 0392D010classA:getob 中self 的地址 --> table: 0392D128c2 地址 --> table: 0392CE80******************************table: 0392D010table: 0392CE80******************************classA:getob 中self 的地址 --> table: 0392D128classA:getob 中self 的地址 --> table: 0392D128c3 地址 --> table: 03933050table: 03933050
2.2 .
定义的函数的示例
classA={}print(classA)function classA.new(cls,...) --定义类方法时使用"."号,不适用隐式传参print(cls) this={} setmetatable(this,cls) cls.__index=cls --将元表的__index设为自身,访问表的属性不存在时会搜索元表 cls.init(this,...) --初始化表,注意访问类的方法都是".",此时不会隐式传入参数 return thisendfunction classA.init(self,name)print("classA.init -->", self) self.name=nameendfunction classA.getname(self)print("classA.getname -->", self) return self.nameend-- 注意这里的调用方式,是 : 。p=classA:new("gray.yang")print("p --->", p)print(p:getname())print(string.rep("*",50))
运行结果:
table: 0381B888table: 0381B888classA.init --> table: 0381B8D8p ---> table: 0381B8D8classA.getname --> table: 0381B8D8gray.yang**************************************************
熟悉其他面向语言的同学,看了上面的例子,应该对.
和:
有了了解,接下来自己平常多写写就明白了。
参考资料
Lua 面向对象
关键词:
lua中 . 和 : 的区别
港人北上消费升温 香港零售业对人流量持乐观态度_世界新消息
前沿资讯!欧盟机构:6月初全球平均气温创纪录
世界百事通!理想MPV设计手稿曝光 李想:设计灵感不是和谐号 而是鲸鱼
女儿高考完提出3个要求妈妈崩溃:养了个祖宗|天天速看
土星卫星首次发现高浓度磷元素 地外生命真的存在?
美商海盗船发布新款DARKSTAR鼠标:15个可编程按键
2399元的RTX 4060即将开卖 专家称英伟达还得涨:显卡份额突破76%
[路演]金杨股份首次公开发行股票并在创业板上市网上路演今日在全景网成功举办
世界简讯:网易云心动模式为什么会播不是喜欢的音乐(网易云的心动模式在哪)
元数据在数字化时代中的应用与发展
记录--设计一个可选择不连续的时间范围的日期选择器
聊聊Flink的必知必会(三)
【活动访谈】发力数字基座 推动物联创新—航天科技控股集团AIRIOT4.0平台发布会活动专访 天天短讯
即时焦点:曝光!Apache SeaTunnel Catalog 功能设计为何能大大简化用户启用步骤?
财政部:1-5月全国一般公共预算收入同比增长14.9% 一般公共预算支出同比增长5.8%
新美男记_关于新美男记简介
当前资讯!高考考生们这些“套路”骗局要当心:千万别信
环球观热点:小哥十米高跳江救人!老家张家界奖励10万元外加一套房
16针显卡供电接口闯大祸!第一次把电源烧了
全球实时:HDD硬盘被垄断 倪光南院士:SSD取代的时机到了
iPhone 15 Pro Max影像这下拉满了!看不到短板
景区观光车这价格,吃相太难看了
环球热讯:两部门印发文件部署高校毕业生档案转递接收工作
Kubernetes 1.27.2集群安装|每日热讯
单体服务,微服务服务的演变 & 各自优缺点
世界观焦点:javaScript基础语法之正则表达式
国网集安市供电公司:开展端午节前作风建设监督检查
世界要闻:比法拉利更抢眼!理想设计师亲自“泄密” W01设计手稿公布
苦中作乐!广东暴雨积水成河:有人屋内钓鱼 外卖车成水上摩托-当前滚动
快报:顾客遇账单刺客8碗米饭要90元 餐厅反驳:为了拍段子蹭流量
热到怀疑人生!今年“烧烤模式”来得早
每日视讯:RTX 4080显卡杀到8399元 铭瑄618全程价保:硬核装备开抢
FOreverLove什么意思中文
全球热门:远程办公篇-vscode远程SSH开发
和必应对话之mysql分区分表
天天日报丨位运算与集合
镜像,容器,容器数据卷,DockerFile 相关命令 使用总结 全球资讯
今日视点:胸部怎样才算不下垂_胸部怎样才能变大
全球今日讯!Facebook首席AI专家表示, 大语言模型只是昙花一现
好多明星去看了梅西比赛:陈妍希、苏醒等人都在现场_全球快播
世界看热讯:余承东:比亚迪是未来能活下来的巨头之一 华为能帮车企活下来
余承东:问界M5智能驾驶能力全球第一 超越特斯拉、国内外所有同行 天天快播
李一男造车梦“复活”自由家NV换标大乘V07已通过工信部申报
全球要闻:一口降温夏日必备!迷你可爱多冰淇淋官旗发车:每支不到1块钱
【天天速看料】邓一杰:黄金破1962,保守调仓,激进持仓!
当前头条:冬天适合在室内养什么植物_冬天室内养什么植物好 冬天适合室内种植的植物介绍
梅西ins发文感谢中国粉丝:开场81秒就进球 打破职业生涯记录 快看点
离谱!代驾设套碰瓷13名代驾同行:故意选土路蹭底盘 世界快消息
梅西直播被吐槽广告多?回应来了:纯聊天 没有带货_每日热议
苹果iPhone为何只有27W充电?原因可能有三 焦点速读
韩媒:韩国年轻人迷上中国App无法自拔 实在太好用了-全球讯息
速看:液冷概念股震荡走高 飞龙股份拉升封板
天天微头条丨CHAT-GPT初使用
唐源电气6月16日盘中跌幅达5%
男子突发奇想将甜瓜和西瓜嫁接 网友看完大笑:这是焊接_每日观察
环球观焦点:交通拥堵为何不禁私家车?这座一线城市要限电动自行车 只是试运行 专家吐槽
罕见!巨鸟撞碎玻璃卡在飞机舱,飞行员满脸血仍淡定驾驶……_全球今热点
热点!从0开始,精通Go语言Rest微服务架构和开发
Apache Spark教程_编程入门自学教程_菜鸟教程-免费教程分享
Qt+QtWebApp开发笔记(六):http服务器html实现静态相对路径调用第三方js文件
【环球聚看点】实力登场 汉马动力携四款动力产品亮相上海GPOWER 2023动力展
陕西加强养老服务设施规划建设新建城区 新建居住(小)区配建养老服务设施
员工没完成业绩被罚吃苦瓜 公司:激励团队 都是自愿的
最新消息:买2套到手23件:黑人好来超白茶牙膏套装5支39.9元
坦克300坐不住了 全新一代北京BJ40曝光 你会选谁?
环球观热点:RTX轻薄本怎么选?不妨看看这三款:13499元的华硕灵耀Pro14 2023无可挑剔
世界观察:维珍银河计划月底进行首次商务飞行:数百名旅客将上太空
车祸轻伤害要求赔偿多少
每日快看:MySQL索引优化与查询优化
直播源码搭建平台技术知识:实时语音识别字幕呈现功能
有没有类似天龙八部的游戏_类似天龙八部的网络游戏|当前报道
赤座茜出场_赤座茜
滴滴发布橙意保障计划:9成网约车司机月均抽成低于20%
私人山庄被网红闯入并造谣为鬼屋吓得房主不敢回了 网友:请严惩_热闻
梅西回应被迫“宅”酒店 酒店外的球迷太疯狂:感谢所有中国球迷 环球资讯
新资讯:问界M5智驾版交付 首位女车主还是兰博基尼、劳斯莱斯车主
两月没开电池报废不保修?极氪电池质保权益升级:砍掉不合理条约
prscrn键在惠普键盘上哪个位置(prscrn)
雪佛兰萨博班,出演1750部电影的明星车,磁力悬挂控制系统-天天短讯
视频编码耗时长、编码帧发送失败…DVPP视频编码问题典型案例分析
形式化分析之BAN逻辑
什么是SEO
当前滚动:国家发展改革委:统调电厂存煤达到历史新高 今年迎峰度夏电力保供有坚实的基础
全球微头条丨国家发改委:今年迎峰度夏电力保供有坚实基础
每日简讯:盐碱地治理之“沽源方案”
真叫“翔龙”了 哈弗全新插混SUV亮相:形似老卫士、搭载Hi4电四驱|世界热闻
女生摆摊卖鸡脚边卖边吃 网友:吃饱了收摊回家
二代骁龙8平板来了:后置双摄、全金属机身设计-世界关注
Win11新文件管理器砍掉部分功能!微软:大众用户不常用 天天新视野
全球讯息:供应链大佬发话!博世中国总裁:汽车企业做手机是吃饱了没事干
蓝色协议职业推荐 最强职业选择攻略[多图]
新消息丨驻马店市西平县大宗秋粮作物播种基本结束
珊子直播(珊子)_世界报道
奔驰新GLA怎么样及奥迪RS5怎么样
天天观点:在南极尿尿会被冻住吗?
特斯拉开启大促:Model 3后轮驱动版补贴8千元 贷款利率优惠 全球聚焦
权威媒体:不带偏见去看 中国相机镜头已开始超越日本厂商_世界最新
Win11+鸿蒙 618组队出击 华为MateBook E系列二合一笔记本实现年轻人Office自由
别以赚钱为目标 及时行乐!张朝阳对年轻人喊话:在网上做个体职业者挺好