跳到主要内容

zm.TableUnpack 数组解包

🎯功能

返回传入参数数组的所有元素, 原型是Lua中的table.unpack(), 目前手机版变量赋值只能接收一个元素, 但可选参数的函数命令可以接收多个元素, 详见示例

📜语法

结果 = zm.TableUnpack([数组, ...][, 起始[, 终止]])

📥参数

参数数据类型解释
数组table待处理的数组, 支持传入多个数组
起始table可选, 截取表的起始位置, 从1开始计算, 省略默认为1
终止table可选, 截取表的终止位置, 从1开始计算, -1表示最后一个元素位置, 省略默认为-1

📤返回

💡示例

Import "zm.luae" //导入插件,只需执行一次
zm.Init //初始化插件,只需执行一次

Dim t = {"a":"hello", 345911220, true, "紫猫"}
//数组tt只能接受第一个元素, 因为按键语法不支持多个变量返回值
Dim tt = zm.TableUnpack(t)
TracePrint tt

//可以打印输出所有返回值, 因为TracePrint支持多个可选参数
//没有显示键名a的元素, 因为只支持数组内容部分
TracePrint zm.TableUnpack(t)

//可以利用{}语法合并两个数组元素到新的数组中
Dim t1 = {1, 2, 3}
Dim newT = {zm.TableUnpack(t, t1)}
TracePrint zm.VarInfo(newT)

//可以解决超级多点找色或多点比色参数过长问题
Dim 颜色1 = {"0DD200","4|2|FFFFFF,3|7|211003,27|1|1592FF"}
Dim 颜色2 = {"123456","40|27|FFFFFF,31|5|211003"}

//下面这两句代码实现效果完全相同, 注意解包必须是放在最后一个参数
zm.FindMultiColor "显示", zm.TableUnpack(颜色1, 颜色2)
zm.FindMultiColor "0DD200","4|2|FFFFFF,3|7|211003,27|1|1592FF","123456","40|27|FFFFFF,31|5|211003","显示"

📘备注

  • V3.1835: 初次加入