Ruby的哈希键的可用类型

时间:2012-12-26 16:47:53

标签: ruby

键必须是字符串或int,还是可以是任何对象类型?

2 个答案:

答案 0 :(得分:5)

非常常见的类型是Symbol,你没有提到。但它确实可以是任何对象。

class Foo; end

f1, f2 = Foo.new, Foo.new

h = {
  f1 => 3,
  f2 => 4
}

h # => {#<Foo:0x007fed4b04bb00>=>3, #<Foo:0x007fed4b04bad8>=>4}
h[f1] # => 3
h[f2] # => 4

答案 1 :(得分:3)

Not documented?

  

[Hash]类似于数组,但索引是通过任意对象类型的任意键完成的,而不是整数索引。

(强调我的。)