我正在尝试输出一个字符串文本,其中我使用哈希值(查找)中的值。哈希键位于输入数组中。
期望的结果将是" Hello John"但我采取的方法不起作用。有任何建议要纠正这个吗?
input = [44,55]
lookup = { 44 => "Dave", 55 => "John" }
puts "Hello #{lookup[input[1]]}"
答案 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]]}"