--file1.lua

x  = funciton()

print("this is x")

end

-------------

--file2.lua

local t = {}

local _G = _G

setfenv(1,t) --设置了这个之后,只要是在本文件中对未声明变量的访问,全部会导致递归。

_G.setmetatable(t, {

__index = function(t, i)

if i != "x" then return end

dofile("file1.lua") --我以为这样就会把x声明为t中的一个全局变量。但是我错了。file1.lua内容加载后,是在块内出现的。都是局部变量

return t[i]

end

})

return t

-----------------

--file3.lua

require("file2")

Main_t.x()

-----------------

运行:lua file3.lua

结果自然是无限循环

lua的table+setfenv+setmetatable陷阱相关推荐

  1. Lua 的table遍历 【转】

    原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://rangercyh.blog.51cto.com/1444712/1032925 ...

  2. Lua 之table的测试

    一.lua 的 table构造 1.字符串作为table索引 法1. MyTable = {x = "xixi"} 法2. MyTable = {["x"] = ...

  3. Lua 中 table 库函数 table.concat 连接 函数

    Lua 中 table 库函数 table.concat 连接 函数 do--> table.concat 连接 函数 tab = {"a", "c", ...

  4. lua之table的使用

    本文对从数据结构,存储和使用三个角度对lua之table的使用进行小结. 数据结构: table是lua的一种数据结构,可以用来存放各种类型的元素,例如可以创建数组和字典,以及二者混合的数据结构, 例 ...

  5. 【游戏开发解答】Unity使用lua将table转为树结构,以多级折叠内容列表的UI形式展现(树结构 | UGUI | 折叠展开 | lua)

    文章目录 一.前言 二.Unity lua环境 三.树节点 1.创建脚本:TreeNode.lua 2.封装节点 四.树逻辑 1.创建脚本:TreeLogic.lua 2.构造测试数据 3.构造树 4 ...

  6. lua中table.和table[]的区别

    lua中table.和table[]的区别 lua中的table可以定义为如下格式 local tab = { ["one"] = 1, ["two"] = 2 ...

  7. 【原】lua的table深拷贝

    一般写的时候要注意以下几个问题: 1.自己里面的属性是自己,要防止死循环 2.同一个table地址出现在table属性(k或者v)的不同地方,复制时不能复制成2个table地址,需与原来地址保持一致 ...

  8. lua中table的常用方法

    转载:https://blog.csdn.net/Fenglele_Fans/article/details/83627021 1:table.sort() language = {"lua ...

  9. lua的table库中的常用函数总结

    table是Lua语言中的一种重要的数据类型, table 的一些特性简单列举如下:  (1).table 是一个"关联数组",数组的索引可以是数字或者是字符串;  (2).tab ...

最新文章

  1. 2020-09-05
  2. 想知道你在网上的发言,被怎么分析么?
  3. 《通过Web远程浏览并控制Tiny6410上的usb摄像头》---实战篇
  4. linux nas解决方案_阿里产品总监:四大 Linux 支持的 NAS 解决方案
  5. 浅谈二次元场景特征和绘制手法
  6. PhpStorm 对 AngularJS 的支持
  7. shiro 解决 跨域(仅端口不同) 登陆 问题
  8. jsp后台批量导入excel表格数据到mysql中_运用java解析excel表,拿到表中的数据并批量插入数据库...
  9. PNG图片怎么转成ICO
  10. 让Yahoo!奇摩害怕的无名小站
  11. 互联网公司的几种销售模式
  12. 比亚迪--一文看懂--家用新能源汽车产品线
  13. 关于hadoop运行成功但是无法链接web页面
  14. 【小程序】小程序安卓,ios,ipad兼容问题
  15. PDF怎么添加页码?PDF添加页码的方法
  16. 一名SM是怎么炼成的(之一锻炼领导力)
  17. IOT专用IOP平台
  18. Real-Time Rendering 4th Edition 实时渲染第四版 第三章 图形处理单元(The Graphics Processing Unit)
  19. php是什么化学物,dmap是什么化学物质以及它的性质用途
  20. java台球游戏设计原理_台球游戏的核心算法和AI(1)

热门文章

  1. 使用nc传输文件和目录【转】
  2. 【收藏】Java多线程/并发编程大合集
  3. .net erp(办公oa)开发平台架构之流程服务概要介绍
  4. BZOJ 1176: [Balkan2007]Mokia( CDQ分治 + 树状数组 )
  5. EditPlus集成Java编译和运行命令组建轻量级Java SE开发工具
  6. 转_前端开发技术概要
  7. js 抛出异常 throw
  8. NDKJNI Android 相关资料整理(四)
  9. JavaScript 中的有限状态机
  10. C#实现类似qq的屏幕截图程序