1
我在Ruby中的函數:(全局變量$items
是一個Hash對象映射幾串一些價值決定的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"], ...}
但是當我嘗試item["name"]
下一行(這絕對應該返回Thing1
),它給了我:
C:/somepath/someprogram.rb:125:in '[]': can't convert String into Integer (TypeError)
如果您需要鍵和值,請使用解構綁定。 –
如果你不知道「解構綁定」(我自己從來沒有在Ruby社區聽說過),他的意思是做類似'$ items.each do | key,value |' –
呃好吧,這似乎是問題所在: ) 謝謝! – itdoesntwork