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。
记录编程的点滴,体会学习的乐趣