【发布时间】:2014-08-09 04:44:18
【问题描述】:
在 Ruby 中,有一个名为 Hash 的内置类。根据the docs:
哈希是一个类似于字典的唯一键及其值的集合。也称为关联数组,它们与数组类似,但在数组使用整数作为索引的情况下,哈希允许您使用任何对象类型。
...
可以通过使用其隐式形式轻松创建哈希:
grades = { "Jane Doe" => 10, "Jim Doe" => 6 }
所以基本上,他们是associative arrays。如果是这样,那么为什么它们被称为哈希?在计算机科学中,术语“哈希”不是通常用来指代通过hash function 运行某些数据而生成的某种数字或十六进制字符串吗?事实上,Ruby 对象甚至有一个名为 hash 的方法,它“为这个对象生成一个 Fixnum 哈希值”。
我知道 Ruby 中的 Hash 是作为 hash table 实现的,但鉴于我上面所说的,使用名称 Hash 而不是 Table 之类的名称似乎没有足够的理由或Map,特别是考虑到Ruby 似乎没有associative arrays 的任何其他内置实现。为什么选择这个名字?
【问题讨论】:
标签: ruby language-design