私は 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