Ruby-如何在哈希查找中使用数组值作为键

Ruby-如何在哈希查找中使用数组值作为键,ruby,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

我试图输出一个字符串文本,其中我使用了散列(查找)中的值。哈希键位于输入数组中

期望的结果是“你好,约翰”,但我采取的方法不起作用。有什么建议可以纠正这个问题吗

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

如果要打印引号,请使用:


类似于这样,为了分隔一个方法参数,您需要()或什么都不需要,而不是[]

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分钟内结束这个问题(最快我可以结束它)。抱歉占用了你的时间。
lookup = { 44 => "Dave", 55 => "John" }
puts "Hello #{lookup[input[1]]}"