我正在尝试按值获取键,但是想要设置一个请求动态抛出字符串变量。
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)
我还检查了request1
和request2
类 - String
我阅读了rassoc的说明,但仍然不明白为什么第二部分不起作用。
答案 0 :(得分:1)
您在gets
上错过了一个小拳头:
# If the user types 'Washington'
gets #=> "Washington\n"
gets.chomp #=> "Washington"