适当的术语应该用indexes还是indices?

49

我在Stack Overflow上提出了一个关于表格索引的问题。虽然得到了答案,但有人将单词indices改成了indexes

我们知道Index的复数形式是Indices,但几乎所有人都更喜欢使用“错误”的单词。

还有哪些类似于这样的“错误”术语,它们本不应该如此,但却正在取代它们的“正确”对应词?


2
在某个公司,我们中的一些人曾尝试使用“mutices”。可能是因为我们没有勇气在文档中使用它,所以并没有真正流行开来,但我认为这样的努力是值得的;-) - Steve Jessop
6
我投票关闭此问题,因为这不是一个编程问题,而是一个英语问题。 - Tunaki
1
答案是指数。 - Rob
9个回答

35

"Indices"是数学术语,而出版界使用的是"indexes"(这可能是为什么许多IT人认为“indices”比“indexes”更正确的原因)。

我认为表索引类似于书中的索引,而不是数学中的指数,因此在这种情况下,出版物中的复数形式是适当的。

此外,至少在Oracle中,数据字典视图被称为DBA_INDEXES、ALL_INDEXES和USER_INDEXES。在领域中使用相同的术语通常是一个好主意。


14
编程中的“Index”也可以指数组索引,这恰好是数学用法而不是出版用法。虽然很有趣,但也许为了完全追求严谨模式,我们应该始终要求使用“数据库索引”,而非“数组索引” :-) - Steve Jessop
1
OQ确实提到了“表上的索引”,所以我认为我的观点站得住脚。但如果我碰巧遇到一个有多个索引的数组,我会努力使用“indices”来讨论它;-) - APC
1
Mysql文档说索引 https://dev.mysql.com/doc/refman/8.0/en/mysql-indexes.html,Postgres文档也是如此:https://www.postgresql.org/docs/9.1/indexes.html - moger777

23

大多数人不知道"数据"是复数形式,而"data"是单数形式。你有多少次听到过"a single data point?"

但即便如此,我们中的一些人也觉得它听起来很傻,并且几乎从不使用它。

语言是变化的,"datum"可能正在成为过时的用法!


8
对于像我这样的德国人来说,更让人困惑的是,“data”在这里很常用,而“datum”与英语国家一样晦涩难懂,但在德语中,“datum”也是指“date”。 - DevSolar
3
DevSolar,"data" 在俄语中意为“日期”;-),而在波兰语中则使用拉丁字符集 :) - Michael Krelin - hacker
5
我认为“anecdote”是单数,“data”是复数。 - 1800 INFORMATION
7
“数据点”这个词是完全合法的;它是“数据点”的另一种写法。也就是说,“数据”是“点”的组成部分。“Datum point”则会显得冗余和奇怪。 - DanM
比较的不是“单个数据点”和“单个数据点”,而是“单个数据点”和“[单个]数据”。然而,“数据”确实有其他含义,例如在测量学中,尽管术语“大地基准面”经常被使用。 - alphabetasoup
显示剩余2条评论

21

总结答案如下:

在英语中,两个单词都经常用作复数形式的 index。 拉丁语风格的 indices 在科学和数学环境中更为普遍,例如公式中数组的(下标)指数。 但是 indexes 在出版物(“期刊索引”)和美式英语中似乎更加流行。

有人认为独特使用 indices 作为名词 index 的复数形式具有价值,而不是动词 index 的第三人称单数现在时 indexes。(“他为所有TPS报告建立索引,可以在循环文件中找到这些索引。”)

一些人认为简单的数字偏移数组 indices 和数据库 indexes 或全文 indexes 的更复杂的数据结构之间存在微小的区别。(“索引已损坏,因为更新代码在其索引中存在一个偏移量错误。”)

这些区别足够微妙,以至于只有在紧密联系的实践社区内记录并强制执行其首选项才可能得以保持,就像某种本地权威风格指南一样。

在代码中命名变量时:

使用 indexes 具有常见的属性,即简单的 grep 搜索 index 也会找到该复数形式。 当寻找间接引用相同偏移量的方式时,这可能会有所帮助。

target_index = 0
indexes[target] = 0
indexes['target'] = 0
target = len(indexes)

indices 没有这个属性,所以我更喜欢在代码中使用 indexes


5
这是一个绝对精彩的回答。 - Roshambo
3
简而言之:在代码中的变量命名中,如果您使用“indexes”,搜索“index”将同时找到“indexes”和“index”。而“indices”则没有这个属性。 - Muhammad Yasirroni

11

根据webster.com, "indexes" 和 "indices" 都是正确的拼写方式;"indexes" 排名第一。

话虽如此,由于 "indices" 本来就是正确的,我不认为编辑并将其替换为 "indexes" 是适当的。


2
http://stackoverflow.com/questions/1001366/indexes-or-indices/1001379#1001379 - geowa4

2

2
这个问题在其他地方也有讨论。 英语堆栈交换 引用牛津词典解释说两者都是有效的:

指数的复数形式:indexes 或尤其在技术用途中为 indices

指数的复数通常拼写为 indexes,但在科学和医学等学科中也可以拼写为 indices(如原始的拉丁文)。

这个页面提出了一个好点子,建议使用“Indices”作为名词的复数形式,以区别于动词。 摘要 所以,总之,在技术背景和写作中 - 更接近于科学 - 为了将其与动词区分开来,“Indices”是数据库术语中首选的复数形式。

2
如何给出一个反向答案:
有太多人固执地(或许是死板地,或者无知地?)坚持使用“Octopi”这个词。 “Octopus”源自希腊语,所以整个“us到i”的复数范式不存在。一些人甚至会纠正你说“octopuses”,这是正确的英语复数形式。
不是要评判,但我注意到那些说“octopi”的人通常也会坚持使用“datum”和“indeces” ;)

实际上是章鱼。在XKCD论坛上有一个关于这个问题的很好的讨论:http://forums.xkcd.com/viewtopic.php?f=2&t=611 - Marius
1
如果您说希腊语,那么它是“octopodes”。如果您说英语,那么它是“octopuses”。 - anschauung
现在,如果你计划全面应用适当的语法形式(http://u.nu/5xh53),那么使用“octopodes”而不是“octopuses”会更有说服力。但仅仅使用“octopodes”就显得过于学究。 - anschauung

1

这只是关于千字节/兆字节/千兆字节讨论的延续。英语语言不断发展,词典并不是要遵循的规则书,而是对该语言在特定时期使用情况的一个快照。如果我们选择以不同的方式使用一个单词,那么韦伯斯特就应该跟上脚步。


“千字节/兆字节/吉字节讨论”是什么?这些词不能像索引和指数一样意思相同。 - cambunctious
@cambunctious,这可能是kibibyte/mebibyte/gibibyte和kilobyte/megabyte/gigabyte之间的区别。科学前缀kilo-/mega-/giga-/等被定义为10^3/10^6/10^9/...,而二进制前缀kibi-/mebi-/gibi-/等被定义为2^10/2^20/2^30/...。历史上,操作系统制造商使用了kilo-/等与2^定义,而硬盘制造商一直在使用10^定义。这就是为什么你的500GB硬盘在操作系统中注册为465GB的原因。https://en.wikipedia.org/wiki/Binary_prefix - JG in SD

0

指数(来自拉丁语)在科学工作中使用,但索引通常用于其他情况。因此,在这种情况下使用索引是正确的。

来自Indexes versus indices(我强调):

......使用-s或-es标记复数的标准英语方式已逐渐被采用......这就是为什么我们现在更喜欢crematoriums而不是拉丁语的crematoria和forums而不是fora,尽管一些作家仍然经常使用拉丁语复数形式。

指数在科学工作中幸存了下来,特别是在数学中。......通常的复数形式是indexes,它首次出现在17世纪。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接