私はいくつかのアイテムを生成する関数を持っています。私はそれらを使用して繰り返しています
my_function() do |item|
... some code here ...
end
イテレータがアイテムを返さないかどうかを確認するクールな方法はありますか? 何かのようなもの:
my_function() do |item|
... some code here ...
else
puts "No items found"
end
私はいくつかのアイテムを生成する関数を持っています。私はそれらを使用して繰り返しています
my_function() do |item|
... some code here ...
end
イテレータがアイテムを返さないかどうかを確認するクールな方法はありますか? 何かのようなもの:
my_function() do |item|
... some code here ...
else
puts "No items found"
end
通常、反復する関数は、反復された列挙型 (配列など) を返します。これを行うと、この戻り値が空かどうかをテストできます。
if my_function(){ |item| … }.empty?
puts "nothing found!"
end
もちろん、ブロックが複数の行にある場合は、次のように書く方が理にかなっているかもしれません:
items = my_function() do |item|
# …
end
puts "Nothing found!" if items.empty?
反復した列挙型を作成するのが簡単または効率的でない場合は、何かを反復したかどうかを示すブール値を最後に返すように関数を変更するだけです。