对于Lua 的 table 索引默认从 1 开始,这样做有什么好处,我有下面的看法。
诞生Lua被创造于巴西一家著名的大学的实验室。它最大的合作伙伴之一是巴西国家石油公司(Petrobras)。Lua的第一批用户是来自石油公司的工程师,许多其他潜在用户都不是专业的程序员。Lua被设计为非程序员使用,在配置文件之类的地方使用。对于非程序员来说,从一开始就计算是很自然的。例如,CSS中的nth-child, xpaths的计数就从1开始。
数据库的选择Lua选择使用这个选项来设计标准库和API,从1开始计算。Lua实现了一个虚拟堆栈,而C交换数据通过这个虚拟堆栈完成。访问这个虚拟堆栈也是下标。正数1、2、3、4表示从堆栈的底部,负数-1、-2、-3、-4表示从堆栈顶部。0是不合法的。其他标准库也是这个想法,比如字符串1、2、3,表示前一个方向,1、-2和-3,也就是后面的数字。如果你从0开始,你不能这么做,因为0没有负数。
此外不仅仅是一个表,字符串的索引也从1开始,就像这个数字不需要调整字符串的位置,对于非专业的开发人员也可能是一件好事,字符串。子(STR, 3, 7)直接表示自第三个字符,直到第7个字符(包括)子字符串。
优势Tie C语言数组的偏移和索引,这是第一个让所有初学者感到困惑的地方,lua想要区分它们,我想。事实上,如果语言的大部分实现都与内存以及其他底层的东西无关,它真的不应该让程序员来抵消这些东西。
优势在于,没有学习过C语言和C语言的人可以很自然地使用它,而那些学习过C语言和C语言的人可以很快地适应它。