Lua có toán tử # để tính toán độ dài "" của bảng đang được sử dụng làm mảng. Tôi đã kiểm tra toán tử này và tôi rất ngạc nhiên.Tại sao toán tử độ dài (#) của Lua trả về giá trị không mong muốn?
Đây là mã, rằng tôi hãy để chạy theo Lua 5.2.3:
t = {};
t[0] = 1;
t[1] = 2;
print(#t); -- 1 aha lua counts from one
t[2] = 3;
print(#t); -- 2 tree values, but only two are count
t[4] = 3;
print(#t); -- 4 but 3 is mssing?
t[400] = 400;
t[401] = 401;
print(#t); -- still 4, now I am confused?
t2 = {10, 20, nil, 40}
print(#t2); -- 4 but documentations says this is not a sequence?
Ai đó có thể giải thích các quy tắc?
Giải thích quy tắc là công việc của các nhà thiết kế. Họ đã làm như vậy trong [tài liệu] (http://www.lua.org/manual/5.2/manual.html#3.4.6). (Không phải tất cả tài liệu đều hữu ích cho việc học nhưng đó là nơi học tập nên bắt đầu và tiếp tục.) –