lua 学习记录

这篇博客记录了作者学习Lua的过程,包括字符串原理、长整形数据解决方案、元表的使用、面向对象实现、luacomponent组件、源码分析、闭包、单例模式的实现、对象判空方法以及table.unpack的使用。内容深入浅出,涵盖了多个关键知识点。
摘要由CSDN通过智能技术生成

2021/01/26

一、lua 字符串原理: 分为短串、长串(短串:有stringmap 先查找再创建  长串:直接创建即多一个内存副本) 主要是因为短串使用频率高

二、lua 使用长整形数据 解决方案: 在c#、c里封装一个长整形对象 再封装相关的方法函数

2021/01/27

一、元表 : 用来存放元方法的table  元表中的键为事件(event),称值为元方法(metamethod) (http://www.benmutou.com/archives/1755 )

二·、lua实现面向对象 : 1、实用元表简单实现   2、 实用元表结合深度拷贝(参考云风)

三、luacomponent组件(cs文件) : 一个变量引用lua表,适时调用对应生命周期函数。 目的: 使得在lua中也能使用unity内置的函数(生命周期、碰撞等)

四、lua源码分析 : https://blog.csdn.net/initphp/category_9293184.html

2021/04/06

一、闭包:当bug出现的地方存在闭包,优先考虑闭包造成;且bug是由于闭包函数中的某个变量导致不要犹豫就是闭包造成。(举例:unity相关的ui监听事件 dropdown) https://www.cnblogs.com/msxh/p/8283865.html

2021/05/07

一、lua实现单例 本质还是通过元表、元方法__index  https://blog.csdn.net/yitouhan/article/details/15338135

2021/05/20

一、lua里面判空需要分两种情况  1)针对lua对象判空 obj == nil   2) 针对非lua对象判空(最为稳妥) 需要在该对象 对应的环境中判空 举例:判断c#对象是否为空 需要在c#中封装一个接口用来在lua中调用判空

2021/05/21

一、table.unpack 可以把一个table 转化为多参数 即{1,2,3} => 1,2,3

2021/07/01

一、lua 有函数解析顺序规则 InitMng放在文件尾部调用最稳妥 例如 

local xxxMng = {}

functiong xxxMng.InitMng()

end

// xxxMng.InitMng() 如果放这里  InitMng调用了下面的某个函数 会报找不到这个函数

........一堆函数.........

xxxMng.InitMng()

return xxxMng 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值