Ruby的哈希键的可用类型

Ala*_*ano 0 ruby

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

Ser*_*sev 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
Run Code Online (Sandbox Code Playgroud)


Tho*_*mas 5

没有记录?

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

(强调我的。)