Redis进阶 Lua表类型

【Lua表类型】

可以看做是  数组和对象的结合体。兼具两者的性质

1.声明方式一

 或者

 可以看出这和js中声明对象的形式是一样的

 

2.声明形式二

 可以看到这和js里面的数组形式很像,但是需要注意的是,下标是从1开始,而不是0

 

这里可以使用for打印出来数组的内容,需要注意for循环的内容 index,value而不是传统的变量,终值,步长

 使用的是ipairs迭代器

 

等效于下面的

 #a取的是数组的长度

 

ipairs是Lua的迭代器,会从key的值为1开始遍历,一直到值为nil时停止遍历。

比如

 由于key=3时,值为nil,相当于[3]=nil 。所以后续不再输出了

 

【ipairs和pairs的区别】

1.上面讲到ipairs一直到值为nil就会停止遍历,而pairs会输出所有

 2.pairs和ipairs都会优先输出key为nil的值,并且为他们一次赋键值。而ipairs之后会判断下一个key为整数的值是否为nil,若为nil则停止输出。

pairs会遍历所有键值输出,但遇到已经赋值的键时会跳过

 在上例中,[3]已经赋值,如果改为[4],则两个都会输出d。

posted @ 2023-12-23 01:01  RookieCoderAdu  阅读(54)  评论(0)    收藏  举报