zm.TableUnpack 数组解包

文章目录
  1. 1. 功能
  2. 2. 语法
  3. 3. 参数
  4. 4. 返回值
  5. 5. 示例
  6. 6. 备注

功能

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

语法

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

参数

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

返回值

示例

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
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: 初次加入