1
이라고 생각 : (. 글로벌 변수 $items
가 item
의 특성을 결정하는 일부 값에 몇 가지 문자열을 매핑하는 해시 개체입니다)루비 해시의 요소는 내가 루비의 함수가 정수
def find_item(keyword)
potential = []
$items.each do |item|
puts item # <-- for debugging purposes
if item["name"].downcase== keyword
potential << item["name"].downcase
elsif item["keywords"].index(keyword) != nil
potential << item["name"].downcase
end
end
return potential
end
을 나는 그것이 이상 반복되는 현재 항목을 puts
때
은 (주석으로 라인 그냥 않습니다), 그것은 나를 제공 :
{"name"=>"Thing1", "keywords"=>["thing", "green"], ...}
하지만 난 (확실히 Thing1
을 반환해야 함) 다음 줄에 item["name"]
을하려고 할 때, 그것은 저를 제공합니다
C:/somepath/someprogram.rb:125:in '[]': can't convert String into Integer (TypeError)
키와 값이 모두 필요한 경우 destructuring bind를 사용하십시오. –
"destructuring bind"가 알려지지 않은 경우 (저는 루비 커뮤니티에서 들어 본 적이 없습니다), 그는'$ items.each do | key, value | '와 같은 것을 의미합니다 –
아, 그게 문제인 것 같습니다.) 감사! – itdoesntwork