[英]use ruby 'gets' in block
該代碼應按以下方式工作:
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
?
這兩個腳本具有兩個不同的含義/結果。
在第一個中,您從輸入中讀取一個數字,進行存儲,然后將數組中的所有項目與該值進行比較。
相反,在第二個腳本中,由於“從輸入中讀取”代碼位於塊內,因此它將作為detect
迭代的一部分執行。 因此,將要求您輸入一個值(相同的值?)與數組中項目數的次數相同。
根據您的要求,第一種可能是正確的方法。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.