概述
类型1,索引nil值
- attempt to index a nil value (global ‘a’)
试图引用一个空值 - attempt to index a nil value (field ‘name’)
这里的Aa是数字类型,无法用.
去引用
Aa = 1
Aa.name ="hah"
--试图引用一个空值
Aa.name.first = "haha"
--Aa
- attempt to perform arithmetic on a nil value (global ‘a’)
试图用一个空值进行计算
a=nil
print(a+1)
类型2,数学计算,逻辑运算中有nil值
- attempt to perform arithmetic on a nil value (global ‘a’)
试图用一个空值进行计算
a=nil
print(a+1)
- attempt to perform bitwise operation on a nil value (global ‘a’)
试图用空值进行位运算
a=nil
print(a & 1)
- attempt to perform arithmetic on a nil value (field ‘b’)
试图用一个不存在的引用进行计算
a = {}
print(a.b &1)
类型3、调用nil值
- attempt to call a nil value (global ‘a’)
设置a为空,将其以函数的形式调用
a=nil
a()
- attempt to call a nil value (field ‘b’)
调用不存在的子属性或者函数
a={}
a.f()
类型4、数学计算、位运算中使用非数字类型
- attempt to perform arithmetic on a string value (global ‘a’)
试图用非数字类型进行计算
a="str"
print(a+1)
- attempt to perform arithmetic on a table value (global ‘a’)
试图利用table类型进行数学计算
a = {}
print(a+1)
- attempt to perform arithmetic on a string value (field ‘s’)
企图用某个变量的字符子属性进行数学运算
a = {s="str"}
print(a.s + 1)
- attempt to perform arithmetic on a table value (field ‘s’)
试图对某个table类型的子属性进行计算,类似于2
a = {s={}}
print(a.s + 1)
类型5、数量限制
- stack overflow (函数调用栈超限 LUAI_MAXSTACK 1000000)
function a() b() end
function b() a() end
a()
- upvalue数量限制
lua的upvalue是有上限的,这个上限定义在luaconf.h中:
如果local变量太多,还是放到table里面吧
#define LUAI_MAXUPVALUES
60
-
参数个数限制
-
局部变量个数限制
#define LUAI_MAXVARS
200
- 字符串拼接个数限制
lua三种字符串拼接性能分析
参考网址:
常见lua报错类型
最后
以上就是和谐人生为你收集整理的【lua】常见lua报错类型——自用收藏的全部内容,希望文章能够帮你解决【lua】常见lua报错类型——自用收藏所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复