哪个数组元素是第一个? [关闭]
Posted
技术标签:
【中文标题】哪个数组元素是第一个? [关闭]【英文标题】:Which array element is the first? [closed] 【发布时间】:2011-05-24 22:42:36 【问题描述】:在讨论编程的过程中,我有几次误会,这是由于对如何使用序数表示连续的从零开始的数组元素有不同的看法。对此似乎有两种看法:
a[0] = "first";
a[1] = "second";
a[2] = "third;
对比:
a[0] = "zeroth";
a[1] = "first";
a[2] = "second";
我一直更喜欢第一个,因为知道“第 n 个”元素是“索引 n-1 的元素”。但令我惊讶的是,有多少人发现这违反直觉并使用后一个版本。
其中一种约定是否比另一种更正确?在讨论或文档过程中我应该使用哪个来避免误解?
【问题讨论】:
第一项可以通过zero[th]索引访问 【参考方案1】:任何说“零”的人都不能真正相信从零开始的索引。
【讨论】:
Math 通常选择基于 0 的索引而不是基于 1 的索引。数学中的选择比编程中更随意:编码人员几乎总是使用内置的语言功能/标准库,而在数学中,您通常从头开始定义您的术语。【参考方案2】:元素索引几乎与语言相关(例如C:0,Lua:1),而第五个元素是第五个元素,它只是索引这可能会有所不同;)
我想这个答案太分散了......
【讨论】:
数组从 1 开始时不会混淆 :)。 我还没有谈到混淆。只是略有不同:)。人们必须知道并理解自己使用的语言的特性。 ;)【参考方案3】:在某些语言中,例如 Pascal,您可以明确指定索引的范围。即
var stuff : array[-3..3] of integer;
stuff[-3]
仍然是数组中的第一个元素,而不是负的第三个元素。
【讨论】:
【参考方案4】:我认为“first”这个词的英文意思是明确的,指的是序列的初始元素。让“first”指代初始元素的后继是错误的。
如果可能出现混淆,我会说“第三个元素,位于索引 2”。
【讨论】:
【参考方案5】:第一个是第一个从堆栈中取出的。
【讨论】:
以上是关于哪个数组元素是第一个? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章
哪个是第一个被调用的?构造函数或 componentDidMount 或 Render
在 circleCI 配置中,哪个应该是第一个,保存缓存还是恢复缓存?