myArray = {first = "a", "b", second = "c"}
print(myArray[1], myArray[2], myArray.first, myArray.second, #myArray) -- b nil a c 1
myArray[6] = "d"
print(myArray[1], myArray[2], myArray[6], myArray.first, myArray.second,
#myArray) -- b nil d a c 1
myArray = {first = "a", "b", "b2", second = "c"}
print(myArray[1], myArray[2], myArray.first, myArray.second, #myArray) -- b nil a c 1
myArray[6] = "d"
print(myArray[1], myArray[2], myArray[6], myArray.first, myArray.second,
#myArray) -- b nil d a c 2
結論:
lua的table對象中index和key對象是互不影響的;
而且#table會在不連續定義index的時候斷裂,直接取前面獲取到的個數:第2個和第四個的#myArray輸出可以看出,第一次定義了"b",index為1,后面加了鍵值對second之后即使賦值了myarray[6],length還是1. 而第二次給myArray賦值定義了"b","b2",是個連續的,所以length就為2.