如何将字符串var传递给Hash#rassoc?

时间:2013-03-08 19:04:03

标签: ruby hash ruby-1.9.3

我正在尝试按值获取键,但是想要设置一个请求动态抛出字符串变量。

presidents = { 1 => "Washington", 2 => "Adams", 3 => "Jefferson" }

request1 = gets
request2 = "Adams"

puts presidents.rassoc(request1).first # doesn't work
puts presidents.rassoc(request2).first # work perfect

当我输入“Adams”并按Enter键时,第二种方法会出错:

test.rb:6:in `<main>': undefined method `first' for nil:NilClass (NoMethodError)

我还检查了request1request2类 - String

我阅读了rassoc的说明,但仍然不明白为什么第二部分不起作用。

1 个答案:

答案 0 :(得分:1)

您在gets上错过了一个小拳头:

# If the user types 'Washington'
gets       #=> "Washington\n"
gets.chomp #=> "Washington"