lua报错,attempt to call global 'setmetatable'(a nil value)或者类似错误
2016-03-30 19:58
876 查看
写lua的时候用到的module多了,很容易就会犯这样的错误,所以这里记录一下。setmetatable这样的方法,是挂载在_G表下的,但是报错说找不到这样的方法,原因是使用了module,整个环境被压栈了,所以全局的方法都看不到了。而一般会写module(..., package.seeall),是为了使全局环境可见。
但是如果有用到setmetatable(_M, {__index = xxx}),问题就来了,如果这个xxx是一个nil呢???这样你将一个空值赋给了该模块作为元表,所以是看不到整个环境的,自然也会报attempt to call global 'setmetatable'(a nil value) 类似的错误了。
但是如果有用到setmetatable(_M, {__index = xxx}),问题就来了,如果这个xxx是一个nil呢???这样你将一个空值赋给了该模块作为元表,所以是看不到整个环境的,自然也会报attempt to call global 'setmetatable'(a nil value) 类似的错误了。
相关文章推荐
- Ubuntu中vim添加lua支持
- Lua环境安装
- C2064: term does not evaluate to a function解决方法
- Seven More Languages in Seven Weeks (读书笔记):Lua
- Lua_第 20 章 IO库
- leetcode 150. Evaluate Reverse Polish Notation
- Self summary: Using Lua in torch (keep updating)
- Self summary: Using Lua in torch (keep updating)
- Self summary: Using Lua in torch (keep updating)
- Self summary: Using Lua in torch (keep updating)
- Self summary: Using Lua in torch (keep updating)
- Self summary: Using Lua in torch (keep updating)
- Self summary: Using Lua in torch (keep updating)
- Lua 常用函数 一
- 首先了解下c++与lua之间的通信:
- 如何将c结构数据传给lua
- Lua中的loadfile、dofile、require详解
- Lua: lua_call/lua_pcall/lua_cpcall的用法
- 'JDI thread evaluations' has encountered a problem. Exception processing async thread queue
- c++向Lua中传递复杂的结构该如何做?