常写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容易犯的错以及避免方法的主要内容,如果未能解决你的问题,请参考以下文章

MySQL数据库设计常犯的错以及对性能的影响

测试代码时你会犯的 11 个错误

Java开发面试简历这么写,哪一些是我们经常犯的错呢?

Hibernate中容易犯的小错误(有图)

连HDFS源码大神都会犯的错之线程泄露

自学前端最容易犯的10个的错误,新手学前端快来看看