为什么 Lua 数组(表)从 1 而不是 0 开始?
是的,Lua中的数组以索引1作为第一个索引开始,而不是您在大多数编程语言中可能看到的索引0。
示例
考虑下面显示的例子-
arr = {10,11,12,13,14} print(arr[0]) print(arr[1])
在上面的例子中,我们打印了索引0和1处的值,默认情况下,索引0处的值将为nil,就像在Lua中一样,数组从1开始索引,而不是0。
输出结果
nil 10
所以,现在我们知道数组是基于1索引而不是基于0索引的。但是,等等,为什么是1-index和0-index?
实际上,在基于0索引的数组或基于1索引的数组之间进行选择时,关于哪种方法更好以及为什么更好的争论一直存在,但没有明确的答案。
主要的原因是,在Lua中数组是基于1的索引是该语言Lua的本身是由一个名为语言启发溶胶,这是专为石油工程师们有任何的编程语言或根本没有正规的训练在计算机的任何领域科学。所以,之前没有任何编程语言知识的人,或者数据在现实中是如何存储的,通常很难理解从0开始索引背后的逻辑,因此Lua开发人员认为这可能是一个更好的主意是从1本身开始索引,这将使这种情况变得无关紧要,并且对于编程新手来说更容易开始使用Lua而没有任何重大问题。
此外,Lua提供了非常合适的方法,可以帮助任何使用Lua的开发人员避免0索引和1索引之间的混淆,因为这些方法甚至不需要索引。其中一些方法是通用的for循环或ipairs运算符。