【发布时间】:2015-07-28 18:07:58
【问题描述】:
根据Ruby Array documentation,有一个方法to_h,只要数组的每个元素都是另一个包含两个元素的数组,就可以使用该方法将数组转换为散列。以下示例来自同一文档
p [[:foo, :bar], [1, 2]].to_h
但是,当我运行上面的代码时,我得到了这个错误:
irb(main):001:0> p [[:foo, :bar], [1, 2]].to_h
NoMethodError: undefined method `to_h' for [[:foo, :bar], [1, 2]]:Array
from (irb):1
from E:/RubyInstall/bin/irb:12:in `<main>'
irb(main):002:0>
我的 Ruby 版本是
C:\>ruby -v
ruby 2.0.0p247 (2013-06-27) [x64-mingw32]
我想使用这种技术来回答有关 Stackoverflow 的另一个问题,但我现在卡住了,因为 Ruby 的文档化功能对我不起作用。
【问题讨论】:
-
请注意,您仍然可以使用兼容的
Hash::[]语法,如Hash[[[:foo, :bar], [1, 2]]]在 Ruby -
@engineersmnky 听起来很棒!
-
您应该至少升级到 v2.1。 2.0 有一些问题(例如
Refinements)。 -
@CarySwoveland 当然可以