列挙型オブジェクトenum
があり、今度は3番目のアイテムを取得したいとします。は、指定されたインデックスを持つ列挙子の値を参照します。
私は一般的なアプローチの一つは、配列に変換してからのようなインデックスを使用してアクセスを知っている:
enum.to_a[2]
しかし、この方法は、一時的な配列を作成し、それは非効率的であるかもしれません。
今、私が使用します。
enum.each_with_index {|v, i| break v if i == 2}
しかし、これは非常に醜いと冗長です。
これを行う最も効率的な方法は何ですか?
これは良く見えるが、私は指標として非常に大きな数をしたい場合、それはまだそれのために非常に大きな一時的な配列を生成します。 –
@ShouYa:あなたがコメントしている間、別の配列なしオプションを追加しました。 'enum'を1つずつチェックする必要がありますが、それについては何もできません(一般的に)。 –
次は、スマートな提案です。私は、パフォーマンスの意味がコレクションを配列に変換することと比べてどのようなものかを知ることは興味があります。 –