[按键精灵]用“键值对”来存储数据
Dim dict={"name" : "小明","age" : 7,"class" : "一年级"}
TracePrint dict["name"]
Dim dict={"1":"小明"}TracePrint dict["1"]
Dim a="name"Dim dict={a:"小明"}TracePrint dict[a]
dict["age"]=8
dict["like"]="踢球"
删除键值对的操作,目前在按键精灵中并没有看到,暂时空着。。。
创建空的字典有3种方式:
Dim dict()Dim dict=array()Dim dict={null}
后2种方式也是可以清空字典里面的内容。
遍历字典里面的全部键值对:
Dim dict={"name":"小明","age":7,"class":"一年级"}For Each k , v In dictTracePrint k,vNext
k是key简称对应的是键值,v是value的简称对应的是索引值
重复运行遍历字典的操作,会发现每次运行结果的顺序是不一样的,即下面这3条是随机排序的,也就是说字典的内容是无序数据。
当前脚本第3行:age 7当前脚本第3行:name 小明当前脚本第3行:class 一年级
输出字典里面的全部内容,在数组中是可以用join命令合并数组然后输出,如下所示:
Dim arr=array(1,2,3)TracePrint join(arr,",")
输出结果:
当前脚本第2行:1,2,3
但是join命令对字典无效,输出为空值,想要输出字典的全部内容,需要用table转json命令,然后输出。
Dim dict={"name":"小明","age":7,"class":"一年级"}Dim json=encode.TableToJson(dict)TracePrint json
输出结果:
当前脚本第3行:{"age":7,"class":"一年级","name":"小明"}
获取字典有多少个键值对,测试用UBuound或者len命令都不行,那么换一个思维,每一个键值对之间是用逗号分隔的,先转json,当做普通的字符串,用逗号分隔得到新的数组,然后获取数组最大下标,就可以知道键值对的个数了,这个方式虽然绕了点,但是也可以实现。
为了方式键值中含有逗号,也可以用逗号+引号作为分割符,增加精准度。
以上介绍的内容都是一维的字典,实际应用时可能会是多维的字典,如下:
Dim table={"success":200,"data":{"code":"验证码是1646"}}TracePrint table["data"]["code"]
输出结果:
当前脚本第2行:验证码是1646
所谓多维字典就是键值对的索引对象依然是字典。
{"success": 200,"data": {"code": "验证码是1646"}}
即data的键值是{"code":"验证码是1646"}
关于字典的多维的维数是没有限制的,理论上是可以无穷的。
实际应用的例子:
在游戏中记录账号的数据:
{"名称": "小A","等级": "5","经验": 80,"金币": "5000"}
通过这个字典可以记录账号的数据,当数据发生变化以后也可以修改,如等级由5级变成6级,可以这样写。
Dim 账号={"名称":"小A","等级":"5","经验":80,"金币":"5000"}账号["等级"] = 账号["等级"] + 1TracePrint 账号["等级"]
输出结果:
当前脚本第3行:6
新的字典数据就变成了:
{"名称":"小A","等级":6,"经验":80,"金币":"5000"}
字典存储数据适合于多个无序数据的存储,方便调用及修改。
版权声明:
作者:xiaoyang
链接:https://xyzzm.cn/index.php/2022/05/28/%e6%8c%89%e9%94%ae%e7%b2%be%e7%81%b5%e7%94%a8%e9%94%ae%e5%80%bc%e5%af%b9%e6%9d%a5%e5%ad%98%e5%82%a8%e6%95%b0%e6%8d%ae/
来源:个人编程学习
文章版权归作者所有,未经允许请勿转载。

共有 0 条评论