《Programming In Lua》书上一个有问题的代码
来源:互联网 发布:一般都用啥下载软件 编辑:程序博客网 时间:2024/06/02 14:35
--[[---------------------------------------------------Programmer : EOFFile : accessing_non-local_varibles.luaDate : 2015.06.29E-mail : jasonleaster@gmail.comChapter 23 of << Programming in Lua >>Demonstration for "Accessing non-local varibles"------------------------------------------------------]]function getvarvalue(name, level) local value local found = false level = (level or 1) + 1 print (level) -- try local variables for i = 1, math.huge do local n, v = debug.getlocal(level, i) if not n then break end if n == name then value = v found = true end end if found then return value end -- try non-local varibles local func = debug.getinfo(level, "f").func for i = 1 , math.huge do local n , v = debug.getupvalue(func, i) if not n then break end if n == name then break return v end end -- if name == "_ENV" then -- print("Can not find varible @_ENV") -- return -- end -- not found; get value from the environment local env = getvarvalue("_ENV", level) if not env then return end return env[name]endhello = 1print(getvarvalue(hello, 0))
我尝试查看全局变量hello的信息,但是,这里会陷入无限的递归。。。。
getvarvalue是照着《Programming In Lua》第三版写的。
刚开始的时候我照着第二版的《Programming In Lua》写,但是发现有问题。新版本的Lua不再提供setfenv函数,就去找第三版的书看,现在发现第三版的也有问题。
如果有高手路过,对这个问题有了解,希望能够交流指教
0 0
- 《Programming In Lua》书上一个有问题的代码
- 书上的代码总觉得有点问题
- Programming in Lua
- Programming in Lua
- 《programming in lua》(1)
- programming in lua
- Programming in Lua
- Programming in Lua (基础篇)
- 《Programming in Lua》学习总结
- Programming in Lua -- 27.2 Continuations
- programming in lua 第一章笔记
- 《Lua程序设计》(Programming in Lua)阅读笔记
- programming in lua 之 lua api函数
- 《Programming in Lua》Lua 相关编程知识
- 丁老师的作业,书上的代码
- Programming In Lua 中文版 UGLY-PRINTED-PDF
- 《Programming in Lua 3》读书笔记(一)
- 《Programming in Lua 3》读书笔记(二)
- 你有找到好工作的运气么?
- Button UI Kit CSS3漂亮Button按钮
- AR增强现实 Augmented Reality
- 用ElasticSearch,LogStash,Kibana搭建实时日志收集系统
- OJ第三批——Problem H:C++习题 继承与组合
- 《Programming In Lua》书上一个有问题的代码
- MySQL日期数据类型、时间类型使用总结
- SQL Server 数据库备份和还原认识和总结(二)
- chilkat9.5破解
- Asp.net 按钮防止点击多次数据提交
- org.hibernate.hql.ast.QuerySyntaxException: User is not mapped [from User]
- iOS:First throw call stack的解决方法
- Python Mixin
- SQL语句的执行原理分析