lua table值调用

   最近因为工作要求学习了lua,具体的lua如何我就不详细解释了,主要说一下table的下标调用这方面的东西。
1.什么是table?
  table是lua中唯一的数据结构,与其他的语言的数据结构相比,比如c++的array以及lists,它实现了这些数据结构的功能同时功能更加强大,比如自带了搜索算法还有table的大小不必定义,可以自己动态增加的。
2.table下标问题
local a= {}
这就直接定义了a是一个table  注意:定义的时候 要么是字符串= 要么是["字符串"]= 要么是[数字]=  所有的key只能这样
a={x=13,["y"]=14,[3]="qewr"}
第一种 可以 使用 print(a.x/a["x"]) 输出13
第二种 使用print(a["y"]/a.y) 输出 14
简单来说:a.啥的只能针对于字符串下标,而a[]字符串和数字都可以 但是字符串得有""
3.table 默认下标
local a={[1]= 11,[2]= 12,[3]= 13,[4]=14}
local a={11, 12, 13,14}

上诉两种print(a[1]) 输出都是11 输出的结构是一样的

4.table中的table
local a = {
  b = {12,22},
  [1]={3,4},
  {5,6}
}

此时的调用如上 使用 a.b 则是一个新的table
print(a.b[1])会输出12
但是使用print(a[1][1])的时候  却是会覆盖掉[1]={3,4}的 也就是会输出5,因为没有key值时,table中的元素会默认为1,所以以后使用的时候必须规避这种问题。
同理
local a = {
  --b = {12,22},
  {7,8},
  [1]={3,4},
  {5,6},
  [2]={9,10}
}
print(a[2][2]) 输出的结果会是6 因为默认排序的{5,6}会把[2]={9,10}覆盖掉。

猜你喜欢

转载自ligang7895123.iteye.com/blog/2245795