2017-10-02 3 views
0

다음은 내가 작업하고있는 문제입니다."grocerylist"배열에 항목을 추가 할 프로그램은 무엇입니까?

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) 

답변

0

milk, eggs, ojbacon 여기에 모든 변수하지만 당신은 정의를 표시하지 않습니다. 문자열을 만들 수 있습니다 (예 :

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)을 넣어해야합니다.

+0

고마워요. 내가 찾던 고마워요! 어딘가에 누락 된 링크가 있다는 것을 알고 있었고 평소처럼 항목을 문자열로 명시 적으로 정의하지 않았습니다. –

관련 문제