Dans la Programmation en Lua'première discussion, des tables, ils mentionnent:
Comme vous pouvez l'indice d'un tableau de toute valeur, vous pouvez commencer à les indices d'un tableau avec un nombre qui vous plaît. Cependant, il est de coutume en Lua pour commencer tableaux avec 1 (et non 0, comme en C) et de plusieurs installations de bâton à la présente convention.
Plus tard, dans le chapitre sur les structures de données, ils disent presque la même chose: que Lua est intégré dans des installations assumer 1-en fonction de l'indexation.
De toute façon, il ya un couple de convenances à l'aide de 1 à base d'indexation. À savoir, l' #
(longueur) opérateur: t[#t]
accéder à la dernière (numérique) de l'index de la table, et t[#t+1]
accède 1 passé le dernier indice. Pour quelqu'un qui n'a pas déjà été exposés à 0 basée sur l'indexation, #t+1
serait plus intuitif aller au-delà de la fin d'une liste. Il y a aussi Arus for i = 1,#t
construire, qui, je crois, relève de la même catégorie que le point précédent que "1 pour la longueur", peut être plus sensible que l'indexation "0 à la longueur de moins de 1".
Mais, si vous ne pouvez pas briser la mentalité de 0 basée sur l'indexation, Arus 1-en fonction de l'indexation peut certainement être un obstacle. En fin de compte, les auteurs ont voulu quelque chose qui a travaillé pour eux; et je vais vous avouer que je ne sais pas quelle est leur origine objectif était, mais c'est probablement changé depuis.