当前位置: 首页 > news >正文

【Lua】大G表

Lua大G表

_G表是一个保存了所有已经运行了的全局变量,它是全局环境表

_G自身也会被存入_G表中,所以_G._G == _G --> true

_G._G._G._G == _G --> true

如果你用了 setfenv() 或 _ENV 可能会影响 _G 的使用范围(Lua 5.2+ 以后 _ENV 替代了 _G)

-- 例子:判断_G里是否有print函数这种方法
if type(_G["print"]) == "function" thenprint("全局变量中有定义了print")
end
-- 例子:检查脚本是否调用了print()函数
local old_print = print --将old_print指向当前的print
local print_used = false --这是一个用于判断print是否被使用过的标识-- 让print这个引用指向一个新的函数,旧的print函数此时被old_print指着
print = function ()print_used = trueold_print()
end-- 调用
print("Hello!")-- 判断是否使用了print
if print_used thenold_print("本脚本中使用了print函数")
end
-- 例子:打印_G表中所有的全局变量及其指向的内容
-- _G表内包括了
-- 1. 所有的全局变量,没有用local修饰的变量
-- 2. Lua内建的全局函数:如_G["print"] -->打印函数
-- 3. 标准库模块
-- 4. _G自己,即_G["_G"] == _G --> truefor i,v in pairs(_G)
doprint("全局变量",i,"指向了"..tostring(v))
end
http://www.xdnf.cn/news/1155187.html

相关文章:

  • 06 51单片机之矩阵键盘
  • 【Kafka】深入理解 Kafka MirrorMaker2 - 实战篇
  • 链表的基本操作
  • 费曼学习法
  • 吴恩达机器学习笔记(3)—线性代数回顾(可选)
  • 嵌入式硬件篇---按键
  • Nginx的location匹配规则
  • Android 项目中如何在执行 assemble 或 Run 前自动执行 clean 操作?
  • Go语言--语法基础6--基本数据类型--map类型
  • Node.js 中基于请求 ID 实现简单队列(即时阻止策略/排队等待策略)
  • 在NLP深层语义分析中,深度学习和机器学习的区别与联系
  • 【数据结构】二维差分数组
  • 技术演进中的开发沉思-40 MFC系列:多线程协作
  • JavaScript平滑滚动与锚点偏移控制的完整指南
  • InfluxDB 核心概念与发展历程全景解读(二)
  • 18.TaskExecutor获取ResourceManagerGateway
  • Unity笔记——Unity 封装方法指南
  • OpenCV 入门知识:图片展示、摄像头捕获、控制鼠标及其 Trackbar(滑动条)生成!
  • QT无边框窗口
  • 2025 年科技革命时刻表:四大关键节点将如何重塑未来?
  • 详解Mysql Order by排序底层原理
  • RK3588 编译 Android 13 镜像方法
  • 用C语言实现控制台应用的按键方向控制
  • Qt的安装和环境配置
  • 【愚公系列】《MIoT.VC》002-构建基本仿真工作站(布局一个基本工作站)
  • OPC UA, CAN, PROFINET, SOCKET, MODBUS, HTTP, S7七种物联网常用协议解释
  • 金融工程、金融与经济学知识点
  • Claude 3模型深度剖析:架构创新与性能突破
  • JAVA面试宝典 -《容灾设计:异地多活架构实践》
  • 从零搭建智能搜索代理:LangGraph + 实时搜索 + PDF导出完整项目实战