Этот код работает как надо:
puts "pick 1:"
num_1 = gets.chomp
array.detect { |k| k.id == num_1.to_i }
...
puts "pick n:"
num_n = gets.chomp
array.detect { |k| k.id == num_n.to_i }
Я не собираюсь повторно использовать переменную 'num' где-либо еще, поэтому я хотел не назначать gets
переменной и использовать ее в блоке, например:
puts "Pick 1:"
array.detect { |k| k.id == gets.chomp.to_i }
В консоли иногда работает иногда нет. Если это не так, я застрял в функции.
Является ли это незаконным использованием или я должен как-то обернуть gets
?
gets
в каждом элементе массива, не так ли? - person undur_gongor   schedule 19.09.2015gets.to_i
возвращает то же значение, что иgets.chomp.to_i
, поэтому вы часто видите, чтоchomp
опущено. Еслиs = gets #=> "123\n"
,s.int #=> 123
по той же причине, что и"3 blind mice".to_I #=> 3
. - person Cary Swoveland   schedule 19.09.2015