我想輸出一個字符串文本,我在其中使用哈希值(查找)中的值。散列鍵在輸入數組中。Ruby - 如何使用數組值作爲哈希查找中的鍵
期望的結果將是「你好約翰」,但我採取的方法是行不通的。任何建議來糾正這個?
input = [44,55]
lookup = { 44 => "Dave", 55 => "John" }
puts "Hello #{lookup[input[1]]}"
我想輸出一個字符串文本,我在其中使用哈希值(查找)中的值。散列鍵在輸入數組中。Ruby - 如何使用數組值作爲哈希查找中的鍵
期望的結果將是「你好約翰」,但我採取的方法是行不通的。任何建議來糾正這個?
input = [44,55]
lookup = { 44 => "Dave", 55 => "John" }
puts "Hello #{lookup[input[1]]}"
你的方法也適用於我irb
2.2-head :001 > input = [44,55]
=> [44, 55]
2.2-head :002 > lookup = { 44 => "Dave", 55 => "John" }
=> {44=>"Dave", 55=>"John"}
2.2-head :003 > puts "Hello #{lookup[input[1]]}"
Hello John
要遍歷你的鑰匙,使用此:
input.each do |key|
puts "Hello #{lookup[key]}"
end
=> Hello Dave
=> Hello John
你確定它不工作?
irb(main):001:0> input = [44,55]
=> [44, 55]
irb(main):002:0> lookup = { 44 => "Dave", 55 => "John" }
=> {44=>"Dave", 55=>"John"}
irb(main):003:0> puts "Hello #{lookup[input[1]]}"
Hello John
如果你想帶引號印刷使用Kernel#p
:
input = [44,55]
lookup = { 44 => "Dave", 55 => "John" }
p "Hello #{lookup[input[1]]}" #=> "Hello John"
事情是這樣的話,要分隔符,你需要一個方法參數()或者什麼也沒有,[]
def lookup key
hash = { 44 => "Dave", 55 => "John" }
hash[key]
end
input = [44, 55]
puts "Hello #{lookup(input[1])}"
還是你的意思是這樣的
lookup = { 44 => "Dave", 55 => "John" }
puts "Hello #{lookup[input[1]]}"
解決了!我在原始代碼中輸入了一個錯字,失去了一個小時。我在這篇文章中提出的解決方案實際上是有效的。 我將在7分鐘內關閉此問題(我可以儘快關閉它)。抱歉花費你的時間。 –