我是靠谱客的博主 和谐人生,最近开发中收集的这篇文章主要介绍【lua】常见lua报错类型——自用收藏,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

类型1,索引nil值

  1. attempt to index a nil value (global ‘a’)
    试图引用一个空值
  2. attempt to index a nil value (field ‘name’)
    这里的Aa是数字类型,无法用.去引用
Aa = 1
Aa.name ="hah"
--试图引用一个空值
Aa.name.first = "haha"
--Aa
  1. attempt to perform arithmetic on a nil value (global ‘a’)
    试图用一个空值进行计算
 a=nil
print(a+1)

类型2,数学计算,逻辑运算中有nil值

  1. attempt to perform arithmetic on a nil value (global ‘a’)
    试图用一个空值进行计算
 a=nil
print(a+1)
  1. attempt to perform bitwise operation on a nil value (global ‘a’)
    试图用空值进行位运算
 a=nil
print(a & 1)
  1. attempt to perform arithmetic on a nil value (field ‘b’)
    试图用一个不存在的引用进行计算
a = {}
print(a.b &1)

类型3、调用nil值

  1. attempt to call a nil value (global ‘a’)
    设置a为空,将其以函数的形式调用
a=nil
a()
  1. attempt to call a nil value (field ‘b’)
    调用不存在的子属性或者函数
a={}
a.f()

类型4、数学计算、位运算中使用非数字类型

  1. attempt to perform arithmetic on a string value (global ‘a’)
    试图用非数字类型进行计算
a="str"
print(a+1)
  1. attempt to perform arithmetic on a table value (global ‘a’)
    试图利用table类型进行数学计算
a = {}
print(a+1)
  1. attempt to perform arithmetic on a string value (field ‘s’)
    企图用某个变量的字符子属性进行数学运算
a = {s="str"}
print(a.s + 1)
  1. attempt to perform arithmetic on a table value (field ‘s’)
    试图对某个table类型的子属性进行计算,类似于2
a = {s={}}
print(a.s + 1)

类型5、数量限制

  1. stack overflow (函数调用栈超限 LUAI_MAXSTACK 1000000)
 function a() b() end
function b() a() end
a()
  1. upvalue数量限制
    lua的upvalue是有上限的,这个上限定义在luaconf.h中:
    如果local变量太多,还是放到table里面吧
#define LUAI_MAXUPVALUES
60
  1. 参数个数限制

  2. 局部变量个数限制

#define LUAI_MAXVARS
200
  1. 字符串拼接个数限制
    lua三种字符串拼接性能分析

参考网址:

常见lua报错类型

最后

以上就是和谐人生为你收集整理的【lua】常见lua报错类型——自用收藏的全部内容,希望文章能够帮你解决【lua】常见lua报错类型——自用收藏所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(45)

评论列表共有 0 条评论

立即
投稿
返回
顶部