2 zhanghaodx082 zhanghaodx082 于 2016.04.20 21:39 提问

lua设置非全局变量,设置当前环境变量相关问题 5C

a="world"
local newtable={}
setmetatable(newtable, {_index=_G})
setfenv(1,newtable)
b="hello"
print(b)
print(a)

................
以上这段代码,为啥会报错呢?错误如下:
lua: noglobal.lua:6: attempt to call global 'print' (a nil value)

1个回答

devmiao
devmiao   Ds   Rxr 2016.04.20 23:23
Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
lua全局环境变量_G小结
1.以一个模块(*.lua,后同)为单位,所有的全局变量都保存在table中,这个table放在_G中,这是一个全局空间(全局环境变量),可以简单的看作一个表。 2._G中只保存全局变量,不保存局部变量。 3.lua中真正存储全局变量的地方不是在_G里面,而是在setfenv(i,table)的table中,所有当前的全局变量都在这里面找,只不过在程序开始时lua会默认先设置一个变量_G=这个
遍历Lua全局环境变量
Lua全局变量 Lua解释器提供了很多全局变量,比如print等,便于程序开发。Lua提供的所有全局变量都保存在一个普通的表_G中。目前Lua-5.2.1中_G中的全局变量主要有“字符串”、“函数”及“表”三种。那该如何遍历这些值呢?(当然,你在会话中进行的任何变更,都将对其造成影响,除非有local限定) 如何遍历Lua提供的全局变量? 既然_G是一个普通的表,那么我们可以采用for语
LUA中的全局变量环境
LUA中的全局变量环境   2011-01-24 18:33:00|  分类: LUA|举报|字号 订阅 LUA中文手册 Chapter14笔记。 一、全局变量的环境 LUA这货在全局变量的实现方式上用了一个绝对让我喜闻乐见的做法,复用已有的table机制,将全局变量都保存在_G表中。这样做好处很多。 从语言实现角度来说,不需要为了全局变量
Lua学习——C++程序设置Lua全局变量值
在c++程序中,不仅能够获得lua全局变量的值,还可以重新赋予lua全局变量新的值,同时也可以建立新的全局变量,这些全局变量在c++程序和lua脚本程序中都是可以动态修改的。   下面是一个简单的示例:   Test.cpp #include   #include   #include   extern "C" {   #include "lua.h"     #in
快速掌握Lua 5.3 —— 环境
Q:_G? A:_G是一个普通的”table”,它其中存储了当前运行环境中所有的全局变量。 type(_G) --> table for n in pairs(_G) do print(n) end -- 打印当前运行环境中所有全局变量。 我们平常在程序中所写的全局变量就存储在其中,全局变量名是”key”,全局变量值是”value”, a = 10 print(_G["a"])
vbscript设置环境变量
添加环境变量比如 setup.vbs文件 内容如下Set argu = WScript.Arguments set sysenv=CreateObject("WScript.Shell").Environment("system") sysenv("JAVA_HOME")=argu(0) sysenv("JRE_HOME")=argu(1) sysenv("CATALINA_HOME")=argu(2)在cmd中执行  文件路径/setup.vbs c:/java c:/java/jre c:/to
Postman工具——环境变量与全局变量
今天开了一天的会,身心俱疲,打开台灯,泛黄的灯光照在书桌的那一刻,倦意反而消失了。接着来写 Postman,今天介绍环境变量和全局变量的使用。
Mac下配置环境变量的两种方式
1.配置全局变量(永久有效) root用户登录,修改 /etc/profile文件,末尾添加环境变量如下: 2.配置单用户全局变量(重启后配置失效)
windows 7 命令行下设置全局环境变量
setx JAVA_HOME D:/java/jdk1.6.30 -m
linux系统中多种方式设置全局变量(java 环境变量配置)
linux 下java 环境变量设置