2013-03-08 93 views
0

我試圖通過價值獲得關鍵,但想要設置請求動態拋出字符串變量。如何將字符串變量傳入哈希#rassoc?

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 

第二種方法給出錯誤,當i型 「亞當斯」,然後按下回車:

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

我還檢查request1request2類 - 既String

我讀的描述rassoc,但仍不明白爲什麼第二個不起作用。

回答

1

您在gets缺少格格:

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

知道了 - 換行。現在它可以工作。謝謝! – 2013-03-08 19:17:41

+0

@ramilmuratov總是檢查你的數據,看看你做的假設是否正確:) – 2013-03-08 19:19:19

+0

@DaveNewton謝謝,但有些數據是隱含的,特別是對於初學者:) – 2013-03-08 19:31:34