常写Lua容易犯的错以及避免方法
Posted avi9111
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了常写Lua容易犯的错以及避免方法相关的知识,希望对你有一定的参考价值。
这里没有Lua入门到精通,只是从代码工程,以及实际应用的层面聊聊。
Lua非强类型语言
Lua也没有专用编辑器
Lua相对于Js等,没有大厂支持,所做的内容更不被大厂所认可,但缺非常使用游戏
导致一些问题几乎无法避免,这里也没什么好的解决方法
(Lua的好处还是很多的。。。。)
由于最近用Xlua,这里只是记录一下常用错误,也和Xlua无关,其他Lua也会有这些通用问题:
1.万有引用
一般lua建立了一个semetable(类)即可无限制,随时随地扩展类的属性,这个属性可以是方法,可以是Unity对象,可以是数组,也可以是一个值,所以导致赋值时,非常容易指向错误;
例如,我想disable一个按钮,一般会写
items[cursor].button.interactable
但很容易就写漏成了,结果就要查一大轮
items[cursor].interactable
建议,一些 api 对象,或实力对象,还是要有规则,规范好,必须强制命名Lua变量
按钮命名为btn,文本命名为txt
(当然一般也不会遵循的规则)
2.Self 和 This 傻傻分不清楚
而且有一段时间忘了写,self和this的前缀甚至忘记写了,直接用大写变量Ctrl二不写self.Ctrl这种做法要不得
建议,
不要用驼峰式命名,和Global变量也容易混淆
3.死循环,缺库,缺引用都会发生,因为不是“”高级语言“”
--require"Logical.Game.UIAnim"
UIPvp = class(UIAnim)
上面少写了一个引用,会导致查半天
建议,
还是需要做成类型安全,像使用高级语言一样的安全性去开发
4.不能支持中文标点反而是好事
避免了很多书写上的错误,虽然写代码(中英文混写)的过程一样烦
l.battleFloor.Find("")
5.string,int,bool傻傻分不清楚
也就是说,连最基本的变量类型也容易混淆导致报错
lua这个最大的功能,也就是他最大的弱点,lua就是这么作,不作不死
所以,还是怎么简单,怎么简化怎么来,就不要想double,float那些类型了,先把基本类型搞定
建议,
.id 的赋值必须注意,tonumber(),tostring(),table.dump()这些方法要活用
以上是关于常写Lua容易犯的错以及避免方法的主要内容,如果未能解决你的问题,请参考以下文章