更好的词典名称

Ima*_*ist 3 dictionary naming

我正在设计一种编程语言,所以我一直在考虑基类型的命名方式.

"词典"对于字典来说似乎是个坏名字.它们不是有组织的单词列表及其定义; 他们不处理单词,他们没有定义,也不是列表.他们与"词典"这个词唯一模糊的关联就是人们执行"查找"就像使用纸质词典一样(这就像把它称为"电话簿"一样好).

"HashTable"描述了可能发生变化的实现.

"关联数组"(来自JavaScript)获得了分数,因为"关联"对于它的作用是一个很好的形容词,但是因为"数组"也描述了一个实现,所以会失去分数,更糟糕的是,它描述的不准确.

"键/值对集"似乎最准确,但它太长而无用(你真的想每次输入"KeyValuePairSet"吗?).

如果我们将"键/值对"称为"关联",我们将获得"AssociationSet".这对我来说是最好的,但不会跳出来作为正确的答案; 它仍然很长,"设置"仍然感觉有点不对劲."AssociationList"更糟糕("list"意味着排序,而不是那里).我简单地只考虑了"关联",但这听起来更像是我会命名一个实例而不是类."RelationSet"和"PairSet"更短但描述性更低(两者都没有捕获到它是一种单向关系键值的事实;键的值在字典的上下文中没有意义).

任何想法可能是一个更好的词典名称?

a p*_*erd 21

"地图"?

您将一个值映射到另一个值.


Lau*_*ves 17

字典是标准的计算机科学术语.抱怨现实世界字典与抽象数据类型不同就像抱怨" "实际上不是一堆杂乱无章的东西,或者" 队列 "不涉及排队买票的人.许多/大多数计算机科学术语都是类比.

也就是说,另外两个合理的术语是"map"(因为它是从键到值的映射)和"table"(因此,"hash table",一个用散列实现的表).

Java实际上使用术语" map "(以及" dictionary " - 稍后当他们意识到字典应该是一个接口时添加了Map,但由于该名称已经被使用,因此他们必须提出一个新名称.)

"表"的缺点是很容易与数据库术语混淆.