arrays - 为什么Lua数组(表)从1开始而不是从0开始?

标签 arrays lua lua-table

我不明白Lua这部分决定背后的理由。为什么索引从1开始?我读过(和其他许多人一样)this great paper 。在我看来,这似乎是一种学习和编程都非常愉快的语言的一个奇怪的角落。不要误会我的意思,Lua 很棒,但必须在某个地方有一个解释。我(在网上)发现的大部分内容只是说索引从 1 开始。句号。

阅读其设计者对这个主题的看法会非常有趣。

请注意,我是 Lua 的“非常”初学者,我希望我没有遗漏一些关于表的明显内容。

最佳答案

Lua 源自 Sol,这是一种为没有接受过计算机编程正规培训的石油工程师设计的语言。没有受过计算训练的人认为从零开始计数实在是太奇怪了。通过采用基于 1 的数组和字符串索引,Lua 设计者避免了混淆其第一批客户和赞助商的期望。

虽然一开始我也觉得它们很奇怪,但我已经学会了喜欢基于 0 的数组。但我对 Lua 的基于 1 的数组还算满意,尤其是 使用 Lua 的通用 for 循环和 ipairs 运算符 - 我通常可以避免担心数组的索引方式。

关于arrays - 为什么Lua数组(表)从1开始而不是从0开始?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2785704/

相关文章:

arrays - 如何更改数组字典中元素的值?

java - 如何在用户每次输入字符串值时自动生成整数值?

lua - 是否可以更改 Lua 字节码中的值?如何?任何的想法?

animation - Love2D/Lua 动画系统和表格

c++ - 关于 C++ 的简单一般问题

java - 使用基于字符串中字符的比较器对字符串数组进行排序

Lua 内部函数 vs 模块级函数

c++ - 如何通过 SWIG 将 lua 嵌入到 C++ 中

lua - 将 nil 附加到 Lua 序列

list - 有没有一种方法可以像 Python 列表 obj 一样拆分 Lua 表