我是一名尝试学习 ruby 的初学者,我正在为以下问题陈述编写代码: - 创建一个最初为空的字典。- 添加条目..单词应该是键,含义应该是值。- 添加带有关键字和定义的整个条目(添加单词时,它应该检查它是否已经存在) - 添加没有定义的关键字(在这种情况下将定义设置为 nil) - 可以检查给定关键字是否存在 - 找到关键字条目并返回关键字 + 定义 - 从前缀中找到多个匹配项并返回整个条目(关键字 + 定义) - 即,如果我们搜索“fi”,那么它应该返回所有以“fi”开头的条目 - 按字母顺序列出关键字
到目前为止,我已经编写了以下代码,但是当我添加关键字和值时,它只存储最后添加的值。在以下情况下,输出为“@word_list={"great"=>"remarkable"}>"。丢失了第一组值。
我不知道如何解决这个问题。任何帮助都会很棒。在此先感谢!
class Dictionary
def word_list
@word_list = Hash.new
end
def add new_entry
case new_entry
when Hash
word_list.merge!(new_entry)
when String
word_list[new_entry] = nil
end
end
d1 = Dictionary.new
d1.add ({"fish" => "aquatic animal", "fiend" => "bad person"})
d1.add ({"great" => "remarkable"})
puts d1.inspect