Trong cuộc thảo luận đầu tiên của Lập trình trong Lua về bảng, họ đề cập đến:
Vì bạn có thể lập chỉ mục một bảng với bất kỳ giá trị nào, nên bạn có thể bắt đầu lập chỉ mục của một mảng với bất kỳ số nào vừa ý bạn. Tuy nhiên, trong Lua thường bắt đầu mảng bằng 1 (chứ không phải bằng 0 như trong C) và một số cơ sở tuân theo quy ước này.
Sau đó, trong chương về cấu trúc dữ liệu, họ nói lại gần như tương tự: rằng các cơ sở tích hợp của Lua giả sử lập chỉ mục dựa trên 1.
Dù sao, có một vài tiện ích khi sử dụng lập chỉ mục dựa trên 1. Cụ thể, #
(chiều dài) điều hành: t[#t]
truy cập cuối cùng (số) chỉ số của bảng, và t[#t+1]
truy cập 1 vừa qua chỉ số cuối cùng. Đối với một người chưa tiếp xúc với lập chỉ mục dựa trên 0, #t+1
sẽ trực quan hơn nếu di chuyển qua cuối danh sách. Ngoài ra còn có for i = 1,#t
cấu trúc của Lua , mà tôi tin rằng thuộc cùng loại với điểm trước đó rằng "1 đến độ dài" có thể hợp lý hơn việc lập chỉ mục "0 đến độ dài trừ 1".
Nhưng, nếu bạn không thể phá vỡ tư duy lập chỉ mục dựa trên 0, thì lập chỉ mục dựa trên 1 của Lua chắc chắn có thể gặp nhiều trở ngại hơn. Cuối cùng, các tác giả muốn một cái gì đó phù hợp với họ ; và tôi thừa nhận rằng tôi không biết mục tiêu ban đầu của họ là gì, nhưng có lẽ nó đã thay đổi kể từ đó.