簡體   English   中英

在塊中使用ruby'gets'

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM