为什么Ruby哈希称为哈希,而不是地图,词组,表或关联数组?

时间:2014-06-18 18:59:00

标签: ruby language-design

在Ruby中,有一个名为Hash的内置类。根据{{​​3}}:

  

Hash是一个类似字典的唯一键及其值的集合。也称为关联数组,它们类似于数组,但是当数组使用整数作为索引时,哈希允许您使用任何对象类型。

     

...

     

可以使用隐式表单轻松创建哈希:

grades = { "Jane Doe" => 10, "Jim Doe" => 6 }

基本上,他们是the docs。如果是这样,那为什么他们被称为哈希?在计算机科学中,不是术语" hash"通常用于指通过associative arrays运行某些数据生成的某种数字或十六进制字符串?事实上,Ruby对象甚至有一个名为hash function的方法,它为该对象生成一个Fixnum哈希值"。

我知道Ruby中的hash是作为Hash实现的,但鉴于我上面所说的,似乎没有足够的理由使用在HashTable之类的名称上Map,特别是考虑到Ruby似乎没有hash table的任何其他内置实现。为什么选择这个名字?

1 个答案:

答案 0 :(得分:5)

Ruby从Perl中获取了大量的灵感,而Perl称之为哈希。

<强>更新

Ruby的创始人Yukihiro Matsumoto证实:https://twitter.com/yukihiro_matz/status/547516495249428480