-- jave.lin - tiny_testing.lua - 测试打印 lua 的 _G--[=[local bit = require("bit")--local band, bor, bxor, tohex = bit.band, bit.bor, bit.bxor, bit.tohex--local brsh, blsh = bit.rshift, bit.lshiftlocal a = 1local b = 3local c = 2local d = 16print("a & b : " .. bit.band(a, b))print("a | c : " .. bit.bor(a, c))print("a ^ b : " .. bit.bxor(a, b))print("tohex(d) : " .. bit.tohex(d))print("1 << 3 = " .. bit.lshift(1, 3))print("1 << 0 = " .. bit.lshift(1, 0))print("3 << 0 = " .. bit.lshift(3, 0))print("3 / 2 = " .. (3 / 2))local tbl = {}tbl._0xffffff = 99print("tostring(tbl):" .. tostring(tbl))print("tbl._0xffffff : " .. tbl._0xffffff)]=]this_is_global_var = "yep!i am global var!"function GAO(tbl) -- get address ofif type(tbl) ~= "table" thenreturn "GAO(tbl), tbl is not a table"end-- return tostring(tbl):gsub("table: ", "", 1)return string.sub(tostring(tbl), 8)
endfunction RecordByGAO(recorder, address)recorder["_" .. GAO(address)] = address
endfunction GetByGAO(recorder, gao_str)return recorder["_" .. gao_str]
endfunction RemoveByGAO(recorder, gao_str)recorder["_" .. gao_str] = nil
endlocal tbl_1 = {}
local tbl_2 = {}
local tbl_3 = {}
local tbl_4 = {}print("tostring(tbl_1) : " .. tostring(tbl_1))print("tbl_1 address : " .. GAO(tbl_1))
print("tbl_2 address : " .. GAO(tbl_2))
print("tbl_3 address : " .. GAO(tbl_3))
print("tbl_4 address : " .. GAO(tbl_4))local recorder = {}
RecordByGAO(recorder, tbl_3)print("GetByGAO(recorder, GAO(tbl_1)) : " .. tostring(GetByGAO(recorder, GAO(tbl_1))))
print("GetByGAO(recorder, GAO(tbl_2)) : " .. tostring(GetByGAO(recorder, GAO(tbl_2))))
print("GetByGAO(recorder, GAO(tbl_3)) : " .. tostring(GetByGAO(recorder, GAO(tbl_3))))
print("GetByGAO(recorder, GAO(tbl_4)) : " .. tostring(GetByGAO(recorder, GAO(tbl_4))))function dump(tbl, indent, indent_str, ar, distinct_only_inherit)if type(tbl) ~= "table" thenreturn tostring(tbl)endar = ar or {}indent = indent or 1indent_str = indent_str or "  "distinct_only_inherit = truelocal str = "{\n"local this_level_indent_str = string.rep(indent_str, indent)RecordByGAO(ar, tbl)for k, v in pairs(tbl) dolocal type_str = type(v)if type_str == "table" then-- avoid infinit recurif GetByGAO(ar, GAO(v)) == nil thenstr = str .. this_level_indent_str .. "\"" .. k .. "\":" .. dump(v, indent + 1, indent_str, ar, distinct_only_inherit) .. ",\n"if distinct_only_inherit thenRemoveByGAO(ar, GAO(v))endelsestr = str .. this_level_indent_str .. "already print : " .. "\"" .. k .. "\":" .. tostring(v) .. ",\n"endelseif type_str == "number" or type_str == "function" thenstr = str .. this_level_indent_str .. "\"" .. k .. "\":" .. tostring(v) .. ",\n"elseif type_str == "string" thenstr = str .. this_level_indent_str .. "\"" .. k .. "\":\"" .. tostring(v) .. "\",\n"endendreturn str .. string.rep(indent_str, indent - 1) .. "}"
endprint("\"_G\":" .. dump(_G, 1, "-"))--[=[输出:>lua -e "io.stdout:setvbuf 'no'" "tiny_testing.lua"tostring(tbl_1) : table: 00C39750tbl_1 address : 00C39750tbl_2 address : 00C39688tbl_3 address : 00C39778tbl_4 address : 00C393B8GetByGAO(recorder, GAO(tbl_1)) : nilGetByGAO(recorder, GAO(tbl_2)) : nilGetByGAO(recorder, GAO(tbl_3)) : table: 00C39778GetByGAO(recorder, GAO(tbl_4)) : nil"_G":{-"string":{--"sub":function: 00C3A940,--"upper":function: 00C3AB80,--"len":function: 00C39D88,--"gfind":function: 00C39B68,--"rep":function: 00C39C08,--"find":function: 00C39D48,--"match":function: 00C39B08,--"char":function: 00C39C48,--"dump":function: 00C39D28,--"gmatch":function: 00C39B68,--"reverse":function: 00C3ABA0,--"byte":function: 00C39E48,--"format":function: 00C39CC8,--"gsub":function: 00C39E88,--"lower":function: 00C39EA8,-},-"xpcall":function: 00C36EB0,-"package":{--"preload":{--},--"loadlib":function: 00C36E90,--"loaded":{---"string":{----"sub":function: 00C3A940,----"upper":function: 00C3AB80,----"len":function: 00C39D88,----"gfind":function: 00C39B68,----"rep":function: 00C39C08,----"find":function: 00C39D48,----"match":function: 00C39B08,----"char":function: 00C39C48,----"dump":function: 00C39D28,----"gmatch":function: 00C39B68,----"reverse":function: 00C3ABA0,----"byte":function: 00C39E48,----"format":function: 00C39CC8,----"gsub":function: 00C39E88,----"lower":function: 00C39EA8,---},---"debug":{----"getupvalue":function: 00C3B8F0,----"debug":function: 00C3B630,----"sethook":function: 00C3B6D0,----"getmetatable":function: 00C3B6B0,----"gethook":function: 00C3B730,----"setmetatable":function: 00C3B750,----"setlocal":function: 00C3B570,----"traceback":function: 00C3B6F0,----"setfenv":function: 00C3B770,----"getinfo":function: 00C3B870,----"setupvalue":function: 00C3B8B0,----"getlocal":function: 00C3B670,----"getregistry":function: 00C3B690,----"getfenv":function: 00C3B650,---},---already print : "package":table: 00C37090,---already print : "_G":table: 00C315D0,---"io":{----"lines":function: 00C37BC0,----"write":function: 00C39F48,----"close":function: 00C37D80,----"flush":function: 00C37B80,----"open":function: 00C39F28,----"output":function: 00C3A108,----"type":function: 00C3A228,----"read":function: 00C3A128,----"input":function: 00C37DC0,----"popen":function: 00C39FE8,----"tmpfile":function: 00C3A148,---},---"os":{----"exit":function: 00C3A288,----"setlocale":function: 00C39B88,----"date":function: 00C39FA8,----"getenv":function: 00C3A068,----"difftime":function: 00C3A1C8,----"remove":function: 00C3A088,----"time":function: 00C39B28,----"clock":function: 00C3A248,----"tmpname":function: 00C39CA8,----"rename":function: 00C39DC8,----"execute":function: 00C3A008,---},---"table":{----"setn":function: 00C37C20,----"insert":function: 00C38000,----"getn":function: 00C381E0,----"foreachi":function: 00C37F40,----"maxn":function: 00C37F80,----"foreach":function: 00C381A0,----"concat":function: 00C38220,----"sort":function: 00C37D20,----"remove":function: 00C37E60,---},---"math":{----"log":function: 00C3B080,----"max":function: 00C3AEC0,----"acos":function: 00C3ABC0,----"huge":1.#INF,----"ldexp":function: 00C3ADE0,----"pi":3.1415926535898,----"cos":function: 00C3AA60,----"tanh":function: 00C3AF40,----"pow":function: 00C3AD20,----"deg":function: 00C3A9C0,----"tan":function: 00C3B590,----"cosh":function: 00C3AA00,----"sinh":function: 00C3AEE0,----"random":function: 00C3ADC0,----"randomseed":function: 00C3B040,----"frexp":function: 00C3AFE0,----"ceil":function: 00C3ABE0,----"floor":function: 00C3ACA0,----"rad":function: 00C3B000,----"abs":function: 00C3AB40,----"sqrt":function: 00C3AF20,----"modf":function: 00C3AD80,----"asin":function: 00C3AC00,----"min":function: 00C3AFC0,----"mod":function: 00C3A920,----"fmod":function: 00C3A920,----"log10":function: 00C3B0A0,----"atan2":function: 00C3AAE0,----"exp":function: 00C3AA40,----"sin":function: 00C3AF60,----"atan":function: 00C3AB00,---},---"coroutine":{----"resume":function: 00C36C50,----"yield":function: 00C36D10,----"status":function: 00C36CD0,----"wrap":function: 00C36CB0,----"create":function: 00C36D50,----"running":function: 00C36D70,---},--},--"loaders":{---"1":function: 00C38020,---"2":function: 00C380E0,---"4":function: 00C38120,---"3":function: 00C38040,--},--"cpath":".\?.dll;.\?51.dll;F:\Program Files (x86)\Lua\5.1\?.dll;F:\Program Files (x86)\Lua\5.1\?51.dll;F:\Program Files (x86)\Lua\5.1\clibs\?.dll;F:\Program Files (x86)\Lua\5.1\clibs\?51.dll;F:\Program Files (x86)\Lua\5.1\loadall.dll;F:\Program Files (x86)\Lua\5.1\clibs\loadall.dll",--"config":"\;?!-",--"path":";.\?.lua;F:\Program Files (x86)\Lua\5.1\lua\?.lua;F:\Program Files (x86)\Lua\5.1\lua\?\init.lua;F:\Program Files (x86)\Lua\5.1\?.lua;F:\Program Files (x86)\Lua\5.1\?\init.lua;F:\Program Files (x86)\Lua\5.1\lua\?.luac",--"seeall":function: 00C37FA0,-},-"tostring":function: 00C36E10,-"print":function: 00C369F0,-"os":{--"exit":function: 00C3A288,--"setlocale":function: 00C39B88,--"date":function: 00C39FA8,--"getenv":function: 00C3A068,--"difftime":function: 00C3A1C8,--"remove":function: 00C3A088,--"time":function: 00C39B28,--"clock":function: 00C3A248,--"tmpname":function: 00C39CA8,--"rename":function: 00C39DC8,--"execute":function: 00C3A008,-},-"unpack":function: 00C36ED0,-"require":function: 00C380A0,-"getfenv":function: 00C368D0,-"setmetatable":function: 00C36870,-"next":function: 00C36A50,-"assert":function: 00C36A70,-"RemoveByGAO":function: 00A52EC8,-"tonumber":function: 00C36EF0,-"io":{--"lines":function: 00C37BC0,--"write":function: 00C39F48,--"close":function: 00C37D80,--"flush":function: 00C37B80,--"open":function: 00C39F28,--"output":function: 00C3A108,--"type":function: 00C3A228,--"read":function: 00C3A128,--"input":function: 00C37DC0,--"popen":function: 00C39FE8,--"tmpfile":function: 00C3A148,-},-"rawequal":function: 00C36AF0,-"collectgarbage":function: 00C36930,-"arg":{--"-2":"-e",--"0":"tiny_testing.lua",--"-3":"lua",--"-1":"io.stdout:setvbuf 'no'",-},-"getmetatable":function: 00C368F0,-"module":function: 00C38140,-"this_is_global_var":"yep!i am global var!",-"rawset":function: 00C368B0,-"ipairs":function: 00C315F8,-"GetByGAO":function: 00A52FA8,-"RecordByGAO":function: 00A52CA8,-"GAO":function: 00A52E28,-"math":{--"log":function: 00C3B080,--"max":function: 00C3AEC0,--"acos":function: 00C3ABC0,--"huge":1.#INF,--"ldexp":function: 00C3ADE0,--"pi":3.1415926535898,--"cos":function: 00C3AA60,--"tanh":function: 00C3AF40,--"pow":function: 00C3AD20,--"deg":function: 00C3A9C0,--"tan":function: 00C3B590,--"cosh":function: 00C3AA00,--"sinh":function: 00C3AEE0,--"random":function: 00C3ADC0,--"randomseed":function: 00C3B040,--"frexp":function: 00C3AFE0,--"ceil":function: 00C3ABE0,--"floor":function: 00C3ACA0,--"rad":function: 00C3B000,--"abs":function: 00C3AB40,--"sqrt":function: 00C3AF20,--"modf":function: 00C3AD80,--"asin":function: 00C3AC00,--"min":function: 00C3AFC0,--"mod":function: 00C3A920,--"fmod":function: 00C3A920,--"log10":function: 00C3B0A0,--"atan2":function: 00C3AAE0,--"exp":function: 00C3AA40,--"sin":function: 00C3AF60,--"atan":function: 00C3AB00,-},-"debug":{--"getupvalue":function: 00C3B8F0,--"debug":function: 00C3B630,--"sethook":function: 00C3B6D0,--"getmetatable":function: 00C3B6B0,--"gethook":function: 00C3B730,--"setmetatable":function: 00C3B750,--"setlocal":function: 00C3B570,--"traceback":function: 00C3B6F0,--"setfenv":function: 00C3B770,--"getinfo":function: 00C3B870,--"setupvalue":function: 00C3B8B0,--"getlocal":function: 00C3B670,--"getregistry":function: 00C3B690,--"getfenv":function: 00C3B650,-},-"pcall":function: 00C36950,-"table":{--"setn":function: 00C37C20,--"insert":function: 00C38000,--"getn":function: 00C381E0,--"foreachi":function: 00C37F40,--"maxn":function: 00C37F80,--"foreach":function: 00C381A0,--"concat":function: 00C38220,--"sort":function: 00C37D20,--"remove":function: 00C37E60,-},-"newproxy":function: 00C31708,-"type":function: 00C36C10,-"coroutine":{--"resume":function: 00C36C50,--"yield":function: 00C36D10,--"status":function: 00C36CD0,--"wrap":function: 00C36CB0,--"create":function: 00C36D50,--"running":function: 00C36D70,-},-already print : "_G":table: 00C315D0,-"select":function: 00C36810,-"gcinfo":function: 00C36B10,-"pairs":function: 00C316D8,-"rawget":function: 00C36830,-"loadstring":function: 00C36A10,-"dump":function: 00A52E88,-"_VERSION":"Lua 5.1",-"dofile":function: 00C36A30,-"setfenv":function: 00C36890,-"load":function: 00C36990,-"error":function: 00C36B30,-"loadfile":function: 00C36AB0,}>Exit code: 0]=]

_G 下除了我们添加的成员外,还有很多我们见过的常用函数

总结:

  • require 的模块都会再 _G 第一级子级下
  • 我们定义的全局函数、变量也是在 _G 的第一级子级(搜索 this_is_global_var 就很容易发现)

测试打印 lua 的 _G 所有显示的字段内容相关推荐

  1. ThinkPHP5显示数据库字段内容

    1.在application文件夹下面的config.php中打开DEBUG. 2.修改tp5/application/index/controller/Index.php内容. 1 <?php ...

  2. 树形打印lua table表

    为方便调试lua程序,往往想以树的形式打印出一个table,以观其表内数据.以下罗列了三种种关于树形打印lua table的方法;法一 local print = print local tconca ...

  3. app测试——打印日志

    目录 日志的抓取与清除 日志过滤 级别过滤 标签过滤 使用管道过滤和重定向 日志乱码 抓取指定app应用日志 日志的抓取与清除 抓取:adb logcat 清除:adb logcat -c adb l ...

  4. Pycharm打开(打印)大数据文件显示不全的解决方法

    Pycharm打开(打印)大数据文件显示不全,即控制台显示不完那么多行. 解决方法如下: -------------追加以下字段 idea.max.intellisense.filesize = 20 ...

  5. 惠普136wm显示无法连接服务器,136w打印机时连接无线时显示连接失败

    请问这个问题解决了吗? 操作系统: Microsoft Windows 10 (64-bit),也用Mac OS装HP Smart 试过. 我也碰到这个问题了,136w打印机时连接无线时显示连接失败, ...

  6. 打印冻结窗格怎么保证每页都有_《excel如何打印标题行》 EXCEL 如何让冻结的窗口 在打印的每页上面显示...

    excel 怎么添加标题? 说得不清不楚,不过我你要说的问题,你怎么把的第一上标题是吗? 因为在excle文件,一个工作表只有一个标题行,如果文件多页打印的时候,只有第一页有标题行,其它页都没有.设置 ...

  7. Word控件Spire.Doc 【打印】教程(2):保打印word文档不显示打印处理对话框

    Spire.Doc for .NET是一款专门对 Word 文档进行操作的 .NET 类库.在于帮助开发人员无需安装 Microsoft Word情况下,轻松快捷高效地创建.编辑.转换和打印 Micr ...

  8. 3d打印机 测试打印stl_如何进行3D打印(即使您没有3D打印机也是如此)

    3d打印机 测试打印stl 3D printers are amazing tools that let you make almost any kind of physical object you ...

  9. Auto CAD:CAD三维建模设计之输出打印及布局(输出、显示、页面设置、各种格式文件、打印设置、对于外部文件打印、三维打印)之详细攻略

    Auto CAD:CAD三维建模设计之输出打印及布局(输出.显示.页面设置.各种格式文件.打印设置.对于外部文件打印.三维打印)之详细攻略 目录

最新文章

  1. Online Judge上陪审团选人问题用Java实现的一个AC解
  2. java之前后端交互原理
  3. SpringCloud微服务云架构构建B2B2C电子商务平台之-(八)消息总线(Spring Cloud Bus)...
  4. 如何使用grup制作U盘多重启动盘
  5. QT下 cannot find -IGL的解决办法
  6. Redis中的可用性保证之Sentinel服务下线
  7. C#多线程编程系列(五)- 浅析C# Dictionary实现原理
  8. Visio各图形如何一键自动对齐?
  9. java字符串最长回文串_Java中的字符串回文程序
  10. Moss/Sharepoint:自定义 Oracle Membership
  11. 后疫情时代:对话下一个 10 年的技术趋势
  12. 北斗导航 | 基于最小二乘残差法与奇偶矢量法的RAIM算法(附代码)
  13. LR11安装报错:此计算机上缺少vc2005_sp1_with_atl_fix_redist,请安装所有缺少的必要组件,然后重新运行此安装。
  14. sonar mysql 配置_Sonar配置与使用
  15. 本科毕业设计|简易三维扫描仪
  16. Sedawk笔记之awk篇
  17. win10系统卷影复制服务器,卷影复制Windows 10与全能备份软件
  18. Windows驱动程序分类
  19. 假如我是面试官,我会怎么考究你?软件测试面试篇
  20. 基于paddlehub的粉圈微博生成

热门文章

  1. 桌面widget详解(四)——桌面音乐播放器(实战)
  2. python计算矩阵对角线之和_Python练习实例38 | 求3*3矩阵主对角线元素之和
  3. 悲催呀,辞职后,竟然找不到工作了
  4. ubuntu18.04修改mac地址
  5. 第2.1章 scrapy之国内高匿代理IP爬取
  6. superpixels
  7. linux 二次封装 释放,Linux必学的60个命令(二)
  8. Python 爬虫数据写入csv文件中文乱码解决以及天眼查爬虫数据写入csv
  9. C++STL库之algorithm库
  10. 经典算法研究系列:八、再谈启发式搜索算法