紫猫安卓按键之表
[数组与表]27. 表的定义(VIP)
安卓按键下的table和lua下的table类似 但是 又不完全一样
小知识:声明方法使用方法遍历方法
Dim t //声明变量
T={"a":1,"b":2,"c":3} //给变量赋值一个table类型和对应的值
Traceprint t["a"] //输出下这个table里面的元素
Traceprint t["b"]
Traceprint t["c"]
//遍历整个表
For each k,v in t
Traceprint k&"-"&v
next
注意:目前表声明 单独一个t={}会报错 需要自己丢个键值对
注意:和数组不同 在table里面的元素之间是没有正常顺序的 是无序的 用foreach遍历你并不确定先读取到哪个元素 后读取到哪个元素
[数组与表]28. 表的键名与键值(VIP)
小知识:键名和键值可以是安卓按键下的任何类型
比如
T={1:"hello",2:2,"test":true,"c":null} 键名是数值 键值是布尔型 键值甚至可以是一个活生生的函数 但是在实际使用期间 就没这么复杂的要求 不多说了
1.不过注意 键名不能为null 小数 负数等等 简单说就是不要太奇葩 我们平时用表顶多是正数或者字符串 所以不会出现这个问题
2.键名可以是变量 键值也可以是变量 1
3如果键值为数组 那么调用的话要注意
无法直接这么用 可以把这个数组元素转给一个变量 然后用这个变量来输出这个数组的内容
[数组与表]29. 表的赋值(VIP)
小知识:修改表的某个元素内容
Tttt["test"]="test1111"
小知识:删除表的某个元素
Tttt["test"]=null
这样你遍历表就无法遍历到这个元素
[数组与表]30. 表的遍历(VIP)
For each k,v in t
Traceprint k&"-"&v
Next
无话可说
[数组与表]31. 表与数组的混合使用(VIP)
小知识:表和数组的关系
Dim t={}
数组其实就是一个表但是这个表有点特殊
Dim arr=array(1,2,3,4,5)//定义赋值了一个数组
用表的方式输出下第一个元素
Traceprint arr[1]//结果为1
结论:数组是一个第一个元素序号为0的数字索引表 但是表的第一个元素默认是从1开始的
[数组与表]32. 可以打乱顺序的可选参数(VIP)
这个也很好理解 原来我们把数组作为函数的参数 可以实现参数的个数变化 现在我们用表作为函数参数 不单单是函数参数的个数可以变化 连参数位置也可以变化 但是呢 没太大用 这样要求我们写函数参数的时候更麻烦
小知识:老师的这个结构
Dim tt=aa or 0 //如果aa为null就是说这个变量不存在 或者这个变量为false的话则取后面的0赋值 如果不为null或者false则把aa的内容赋值
但是呢 没有考虑到aa如果是空字符串的 了解有这么个写法 但是用处不算大
知识点:数组的问题
只要你对数组产生了改变 无论这个改变是在函数内还是 公共变量 那么这个数组就已经改变了 除非你用克隆数组
上图代码显示 虽然我用Brr变量获取了一个和arr一样的数组 但是后面如果我对brr进行调整改变 arr依然会发生变化 这样只能用克隆数组来解决问题
[数组与表]33. 函数返回多个值的写法(VIP)
[数组与表]34. 表的实际运用(VIP)
可以综合设置一些配置
比如
脚本配置={"是否过剧情":true,"是否签到":false,"是否日常任务":false}
[数组与表]35. 深层嵌套表(VIP)
本节课只是说了一个内容 就是如何调用多层结构的表 可以理解为多维数组类似的表
Dim t={"name":"test",sex:"男","age":"16","address":{"省":"山东","市":"威海"}}
要调用
Traceprint t["address"]["市"]
注意 表和数组有一样的毛病
Tt=t
Tt["name"]="test1"
这样会导致t这个表的name元素也跟着变化
解决办法没有 因为克隆只是针对数组 无法克隆表
[数组与表]36. 把一个函数放入表中(VIP)
没什么用 暂时是可以装个B 没什么实用性