将项目添加到 "grocerylist" 数组的程序?

Program which will add items to a "grocerylist" array?

这是我正在处理的问题:

add_item 方法应该有两个参数。第一个参数是要添加到列表中的项目,第二个参数是项目将添加到的数组(即列表)。如果项目已存在于列表中,则不要将其添加到列表中。

这是我目前的代码,它一直给我一个 'undefined local variable' 错误。

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)

milkeggsojbacon 都是此处的变量,但您没有显示定义。您可以将它们设为字符串,例如

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)

在这种情况下,您选择哪个并不重要,但是如果成分名称可以包含特殊字符或空格,则使用字符串会更容易。

也而不是:

else list.push(item)

end

你应该把 list.push(item) 放在空行上。