未定义的方法`<<' for {}:Hash

时间:2015-11-18 02:09:27

标签: ruby

我正在尝试以下代码:

a = Hash.new
a << "Bom dia!" # => NoMethodError: undefined method `<<' for {}:Hash

知道为什么它会返回“未定义的方法”吗?

2 个答案:

答案 0 :(得分:4)

Hash没有<<方法。

我想真正的问题是你认为它的原因,以及如果你<<一个字符串到一个由键/值对组成的对象,你认为应该发生什么。

你有可能打算做以下事吗?

a = Array.new

答案 1 :(得分:0)

这是因为您正在尝试使用<<(铲运营商)为Hash分配值。

相反,请尝试像这样分配它们:( Hash中应该有键/值对)

a = Hash.new
a[:foo] = "Bom dia!"

,或者

a = {foo: "Bom dia!"}