扩展表模块
扩展表模块 - table
深拷贝一个表 (table.deep_copy)
声明
传入表的副本 = table.deep_copy(传入表)
参数及返回值
- 传入表
- 表型,需要拷贝的表
- 传入表的副本 表型
说明
递归拷贝 传入表,生成其副本,表中除 function
和 userdata
以外的所有值都会拷贝。
传入表中如果包含循环引用,那么其引用关系也会获得拷贝。
示例
table.deep_copy
_g = table.deep_copy(_G)
深打印一个表 (table.deep_print/stringify)
声明
表文本 = table.deep_print(关联表) -- 输出到标准输出
表文本 = stringify(关联表) -- 不输出到标准输出,仅返回字符串
参数及返回值
- 关联表
- 表型,需要打印成字符串的表
- 表文本
- 文本型,返回表的树形结构的文本
说明
将一个表的树形结构打印出来。
备注
- 打印出来的结构 不保证格式兼容,不同版本打印出来可能不一样。
table.deep_print
函数调用会将内容输出到print
缓冲区,而stringify
不会。- 非表型引用类型(用户数据、函数)不可通过
table.load_string
反序列,只保证人类可读性。
示例
table.deep_print
local s = table.deep_print(_G)
sys.alert(s)
从字符串加载一个表 (table.load_string)
声明
关联表 = table.load_string(表文本)
参数及返回值
- 表文本
- 文本型,表的树形结构的文本,只能包含静态数据,不能包含任何动态代码
- 关联表
- 表型,加载成功返回表结构,失败返回
nil
- 表型,加载成功返回表结构,失败返回
说明
将一个树形结构文本描述转换成一个表对象。
备注
示例
table.load_string
local t = table.load_string[[ {
a = 1,
b = 2,
c = 3,
} ]]
sys.alert(t.b)