2017-10-02 22 views
0

私が働いている問題は次のとおりです。"grocerylist"配列に項目を追加するプログラムですか?

add_itemメソッドは2つの引数を取る必要があります。最初の引数はリストに追加する項目で、2番目の引数は項目が追加される配列(つまりリスト)です。アイテムがリストに既に存在する場合は、アイテムをリストに追加しないでください。

これまで私が持っていたコードはここにあり、「未定義のローカル変数」エラーが出てきます。

list = Array.new 
list = [milk, eggs, oj, bacon] 

def add_item(item, list) 
    if list.include?(item) 
    puts "item is already on list" 
    else list.push(item) 

    end 
end 

add_item(milk, list) 

答えて

0

milkeggsoj、およびbaconは、ここですべての変数ですが、あなたは定義は表示されません。それらを文字列にすることができます。この場合

list = ["milk", "eggs", "oj", "bacon"] 
# or a shorthand 
list = %w{milk eggs oj bacon} 
add_item("milk", list) 

や記号

list = [:milk, :eggs, :oj, :bacon] 
# or a shorthand 
list = %i{milk eggs oj bacon} 
add_item(:milk, list) 

あなたが選択した1重要ではありませんが、成分名に特殊文字やスペースを持つことができれば、文字列を使用する方が簡単だろう。

もいうより:

else list.push(item) 

end 

あなたは空の行にlist.push(item)を置く必要があります。

+0

私が探していたことだけありがとう!どこかで欠けているリンクがあることは分かっていましたが、通常はアイテムを文字列として明示的に定義していませんでした。 –

関連する問題