根据我对现代编程和脚本语言的经验,我相信大多数程序员通常习惯于将0数组的第一个元素称为索引。
使用1有什么实质性的优势?
我敢肯定,除了Zsh之外,我还听说过更多其他与数组类似的语言;我也很好,因为它同样方便。
但是,由于以前发行和广泛使用的shell脚本语言(例如ksh和bash都使用0), 为什么有人会选择更改此通用“标准”?
我对我的问题的立即回答是“当然不是”。
那么,我能想到的关于外壳的这种“专有功能”的唯一解释是“ 他们只是这样做是为了炫耀更多酷的外壳 ”。
我对Zsh或它的历史一无所知,而我对此琐碎的理论很有可能没有任何意义。
对此有解释吗?还是只是出于个人品味?
5
关于0:1:1的一些历史研究(或值得反思)?exple.tive.org/blarg/2013/10/22/citation-needed
—
thrig 2015年
由于历史原因,这可能来自
—
cuonglm
csh
,它也使用了基于1的数组索引。
如今,sh是一种具有不同可能解释器的标准语言(不是实现)。一些b语言,bsh,ksh和yash等sh语言的解释器支持数组作为扩展,但它们不像gcc那样是语言的一部分,gcc是标准C语言的编译器支持对标准C语言的扩展。就像C语言一样,没有“ sh”解释器的“正式”实现。
—
斯特凡Chazelas
相关- 此PPCG答案中的
—
Digital Trauma
也许有点偏离主题,但相关。罗马人使用包容性计数,从一开始而不是从零开始。后天,对我们来说,“提前两天”,对他们来说,是“提前三天”。今天,他们算为1,而不是0。结果,当埃及天文学家每四年建议一次leap日时,罗马人实际上是从公元前45年开始每三年介绍一次leap日。直到12 BCE才纠正了错误。
—
哈里韦斯顿