、array.reject
とarray.select
何もしない:Rubyでは、何が技術的に - ブロックなしでarray.rejectまたはarray.selectを実行しますか?
[nil, false, true].reject # Should have been reject.to_a for this example.
=> [nil, false, true]
[nil, false, true].select # Should have been select.to_a for this example.
=> [nil, false, true]
、compact
は私が必要なものだったが、ブロックせずに、私は非常に好奇心が強い理由reject
とselect
何もしない - 私は{ |e| e }
のデフォルトのブロックを期待していたので、reject
はcompact
となり、 '選択'は幾分奇妙なコンパクトになります。
デフォルトのブロックは何ですか?
編集:申し訳ありませんが、私は有益な何かを、私は遅延評価のいくつかの並べ替えを誘発し、選択/拒否の列挙になるだろう期待していたこれは、上記の式の両端の「.to_aを」オフ逃しました。私は通常このような事を避けるために&私の例を貼り付けます。
[Enumerator](http://ruby-doc.org/core-2.1.5/Enumerator.html) – fl00r
私のirbでは、[[nil、false、true] .reject =>#<列挙子: [nil、false、true]:reject> '、これはかなり質問に答えます。 –
ブロックなしで選択すると、ドキュメントのように列挙子が返されます。なぜ元の配列以外のものになると思うのか分かりません。どうして拒否基準のない「拒否」が元の配列以外のものになってしまうのか、要素を拒否する理由がない場合はなぜ「コンパクト」になるのでしょうか? –