【发布时间】:2011-02-16 15:51:38
【问题描述】:
我不明白这部分 Lua 的决定背后的基本原理。为什么索引从 1 开始?我已经阅读(和其他许多人一样)this great paper。在我看来,这是一种学习和编程非常愉快的语言的一个奇怪角落。不要误会我的意思,Lua 很棒,但必须在某个地方做出解释。我发现的大部分内容(在网络上)只是说索引从 1 开始。句号。
阅读它的设计师对这个主题的看法会很有趣。
请注意,我是 Lua 的“非常”初学者,我希望我不会遗漏一些关于表的明显内容。
【问题讨论】:
-
默认范围也是全局的。 Lua 的两个最大错误。
-
我不会把从 1 开始的功能称为错误。它实际上更有意义 - 程序员受过良好的训练,可以从我们不喜欢的其他语言中考虑基于 0 的索引。我们也被训练去思考 5/2 = 2。这并不正确。
-
@BlueRaja-DannyPflughoeft:没有。零索引更有意义——人类在从 1 开始计数方面训练有素,以至于以 0 开头的语言最初会令人困惑。但我很想在这里向您推荐 Edsger Dijkstra:cs.utexas.edu/users/EWD/ewd08xx/EWD831.PDF
-
@nightcracker:当你数桌子上的苹果时,你把第一个算作“一”,第二个算作“二”,依此类推。没有人算第一个一为“零”,然后在末尾加一;从零开始计数显然是违反直觉的。是的,我意识到这就是索引在内部的工作方式,但这就是我们称之为抽象的原因。
-
我从不理解对基于 0 的索引的所有热爱。偏移量(从一开始要跳过多少项?)和子序列(0 ≤ x