条件を満たすsource
の要素をスキャンしています。条件はしばしば、常にではないが、正規表現のマッチです。私はfind
のバージョンを探していますが、元の要素ではなく条件の結果を返します。 find
では、成功した要素の基準を再計算する必要があります。要素値ではなく条件値を返す `find`
私はこの線に沿って実行を働いた最高:
source.find {|e| if (m = e.match(/(e.)/)); break m[0]; end}
マルチステートメント行文句を言うRubocopを促すセミコロンを避けるために、私は次のように書くことを好む:
source.find {|e| break m[0] if (m = e.match(/(e.)/))}
しかし、ルビー前方参照に対処することができません(そして、私はのために十分に撚られていないのでe
を再利用します)。
ショートカッティングでこの仕事をするのにもっとエレガントなものがありますか?
知らなかった場合は、回答をアップアップするだけでなく、最も役立つ回答を選択することもできます。 –