Lua 学习笔记table篇(1)
程序员文章站
2022-06-04 14:59:55
...
Lua学习笔记(1)
table索引的笔记
tab = {[1] = "First"};
print("tab第一个元素的值为:",tab[1]);
print("");
--不指定索引
tab0 = {"First" ,"Second"};
print("tab0第一个元素的值为:",tab0[1]);
print("tab0第一个元素的值为:",tab0[2]);
print("");
--tab1 指定第一个元素的索引为1
tab1 = {[1] = "First" , "Second"};
print("tab1第一个元素的值为:",tab1[1]);
print("tab1第二个元素的值为:",tab1[2]);
print("");
--tab2 指定第二个元素的索引为2
tab2 = {"First" , [2] = "Second"};
print("tab2第一个元素的值为:",tab2[1]);
print("tab2第一个元素的值为:",tab2[2]);
print("");
--tab3 指定第一个元素的索引为2
tab3 = {[2] ="First" , "Second"};
print("tab3第一个元素的值为:",tab3[1]);
print("tab3第一个元素的值为:",tab3[2]);
print("");
输出结果:
这里可以看出"[index]"
是直接给table[index]
进行赋值。没有指定索引(key
)的会按顺序自行获取索引。
利用字符串作为索引
mytable = {key1 = 'value1' ,'value2' , [2] = "value3" ,[3] = "value4"};
for i = 1 , 4 do
print(mytable[i]);
end
print(" ");
for k,v in pairs(mytable) do
print(k,v) ;
end
输出结果:
通过下标(1,2,3,4)循环无法获取到mytable["key1"]
的值,只能通过迭代器来获取,个人理解可以将以字符串为索引的元素看作是一个成员,然后对这个成员进行赋值. (是所谓的Record风格和List风格?)
以上纯属个人理解,可能有错误,欢迎各路大神指出!