将项目添加到" grocerylist"阵列?

时间:2017-10-02 22:12:44

标签: ruby ruby-on-rails-3

以下是与我合作的问题:

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

这是我到目前为止的代码,它一直给我一个未定义的局部变量'错误。

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)

1 个答案:

答案 0 :(得分:0)

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)放在空行上。