52

ありそうですkeep_if

もしそうなら、なぜそれは呼ばれないのkeepですか?

4

2 に答える 2

104
  • rejectisの反対select(新しい配列を返す)
  • reject!isの反対select!(配列をその場で編集)
  • keep_ifisの反対delete_if(配列をその場で編集)
于 2012-10-04T03:07:12.007 に答える
2

それはよく考えられたセマンティクスと関係があると思います、そして私はそれが正しいと主張します。「t1、t2、t3」という一連の機能がすでにあるとします。サブセットを拒否すると、「t1とt2を拒否します」と言います。t3については、アクション(拒否)の影響を受けないため、言及しません。デフォルトは「保持」です。しかし、あなたが保持しようとしていることを表現していて、「私はt1とt2を保持している」とだけ言うと、t3のステータスが疑問視されます。結局のところ、あなたはすでにt1とt2を持っているので、あなたを言う意味は何ですか?特に暗黙的にt3も保持しているため、それらを保持し直します(すでにデフォルト状態の「keep」になっています)。構文「keep_if」を使用すると、

于 2012-10-04T14:15:42.943 に答える