欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

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("");

输出结果:
Lua 学习笔记table篇(1)

这里可以看出"[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

输出结果:
Lua 学习笔记table篇(1)

通过下标(1,2,3,4)循环无法获取到mytable["key1"]的值,只能通过迭代器来获取,个人理解可以将以字符串为索引的元素看作是一个成员,然后对这个成员进行赋值. (是所谓的Record风格和List风格?)

以上纯属个人理解,可能有错误,欢迎各路大神指出!

相关标签: Lua