Lua 环境
来源:互联网 发布:淘宝最帅男模特 编辑:程序博客网 时间:2024/05/22 05:29
一、环境
Lua所谓的环境,可以类比的理解为一个namespace,是一个全局变量表,_G。在这个表中,自然就存在一部分默认的全局变量。遍历一下所谓的全局变量表:
a=1;local b=2;for n in pairs(_G) doprint(n);end结果:
a,string,xpcall,package,tostring,print,os,unpack,require,getfenv,setmetatable,next,assert,tonumber,io,rawequal,collectgarbage,arg,getmetatable,module,rawset,math,debug,pcall,table,newproxy,type,coroutine,_G,select,gcinfo,pairs,rawget,loadstring,ipairs,_VERSION,dofile,setfenv,load,error,loadfile
通过这个表可以发现:
1、局部变量b不在这个表中。
2、之前的学习中用到了很多函数print等,很多变量pairs等。这些东西可以使用的原因是其本身存在于环境表中。
二、几个函数
setfenv与getfenv。从这里可以参考:http://blog.sina.com.cn/s/blog_4458fdda01012f4b.html
1、f是一个函数,则将函数的环境变为table,程序如下:
a=1;function f()print(a);endnewenv=_G;newenv.a=3;setfenv(f,newenv);f();输出是3,即将f的使用环境变为newenv。
2、f=1,表示当前函数;f=2表示调用这个函数的上一级函数。
a=1;setfenv(1,{_G=_G})_G.print(a);_G.print(_G.a)输出是:
nil
1
注意,最后调用中,_G必须存在,否则无法调用。
0 0
- 【lua】关于lua环境
- lua 环境
- Lua 环境
- lua学习:lua环境搭建
- lua环境配置
- lua环境配置
- Lua环境配置
- Lua环境配置
- Lua环境搭建
- lua环境配置
- 安装lua环境
- lua环境搭建
- Lua开发环境搭建
- Lua环境配置VS2010
- Lua初步开发环境
- 初学lua 环境配置
- cocos2d lua 环境搭建
- lua+VS环境搭建
- memcached介绍及原理
- php如何判断当前的操作系统是linux还是windows
- 使用分层的Selenium框架进行复杂 Web 应用的自动测试
- PHP高效率写法(详解原因)
- VS开发经验
- Lua 环境
- android 自定义View设置自定义监听 框架(监听自定义字符)
- curl
- 合并百度地图静态库
- mybatis-memcached框架配置
- 和大神们学习每天一题(leetcode)-Valid Sudoku
- Android -- 小功能 仿美图秀秀(美颜相机)马赛克功能
- WITH AS StringBuilder一个小用法
- HDU2018(数学推导)