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

时间:2016-06-28 07:31:25

标签: ruby

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

期望的结果将是" Hello John"但我采取的方法不起作用。有任何建议要纠正这个吗?

input = [44,55]
lookup = { 44 => "Dave", 55 => "John" }
puts "Hello #{lookup[input[1]]}"

4 个答案:

答案 0 :(得分:2)

您的方法适用于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

答案 1 :(得分:0)

你确定它不起作用吗?

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

答案 2 :(得分:0)

如果您希望打印引号,请使用Kernel#p

input = [44,55]
lookup = { 44 => "Dave", 55 => "John" }
p "Hello #{lookup[input[1]]}" #=> "Hello John"

答案 3 :(得分:0)

这样的事情,要分隔你需要的方法参数()或什么都没有,而不是[]

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]]}"