Ruby の select! について調べた

[2, 4, 6].select(&:even?)
=> [2, 4, 6]
[2, 4, 6].select!(&:even?)
=> nil

下のコードがなぜそのように動くのかがよくわからなかったので調べてみました。
これは『研鑽Rubyプログラミング β版』に登場するサンプルコードです。

るりまのこちらに書いてありました。

変更がなかった場合には nil を返します。

ということなので、評価前と同じ配列になるので nil が返ったということですね。
スッキリしました!