【发布时间】:2014-06-13 22:52:26
【问题描述】:
我正在研究一种方法,该方法允许我将“单词”及其“定义”添加到哈希中。
这是我所拥有的:
class Dictionary
def entries
@entries ||= {}
end
def add word, definition = nil
entries[word] = definition
"#{entries}"
end
end
注意:我希望定义参数是可选的,因此我的初始化为零。但是,出于某种原因,我的输出中出现了这种情况。
例子:传入“fish”和“aquatic animal”:
我的输出: {{"fish"=>"aquatic animal"}=>nil}
所需输出: {"fish"=>"aquatic animal"}
问题似乎在于它将我传递给方法的两个值都放入哈希中的第一个键中,并将那个“nil”值放入该键的值中。我在哪里出错了?
编辑:添加正在执行方法调用的相关 RSpec 块,以便我可以更好地了解 RSpec 是如何进行此调用的:
describe Dictionary do
before do
@d = Dictionary.new
end
it 'is empty when created' do
@d.entries.should == {}
end
it 'can add whole entries with keyword and definition' do
@d.add('fish' => 'aquatic animal')
@d.entries.should == {'fish' => 'aquatic animal'}
@d.keywords.should == ['fish']
end
谢谢!
【问题讨论】:
-
它对我有用。向我们展示你是如何调用该方法的。
-
@ArupRakshit 这也是我正在努力解决的问题。这是一个学习 RSpec 的编码项目,所以我实际上并不确定 RSpec 是如何调用该方法的。相关的 RSpec 行已在上面发布 - 如果您也能帮助我更好地理解这部分,我将不胜感激
-
你能准确地补充一下你是如何调用这个方法的吗?
标签: ruby-on-rails ruby hash