14:56 |
要素を順番にブロックに渡して評価し、その結果が真になった要素をすべて削除します。 delete_if は常に self を返しますが、reject! は要素が 1 つ以上削除されれば self を、 1 つも削除されなければ nil を返します。 http://www.ruby-lang.org/ja/man/html/Array.html#delete_if
要素を順番にブロックに渡して評価し、その結果が真になった要素をすべて削除します。
delete_if は常に self を返しますが、reject! は要素が 1 つ以上削除されれば self を、 1 つも削除されなければ nil を返します。
同じかと思いきや戻り値が違う。
なんでdelete_ifは破壊的メソッドなのに!がついていないのかなー
14:17 |
式1 op= 式2
とした場合
式1 = 式1 op 式2
と評価される
式1 op (式1 = 式2)
となる。
これは例えば
hoge ||= "foo"
としたときに、hogeに値があればhoge = hogeは実行されないよということ。
よく考えられてるなー
演算子式 - Rubyリファレンスマニュアル