deleteとdelete_at、delete_ifの違い
2日目です。
初日はあーでもない、こーでもないと考えつつ、結局4時間も費やしてました、、
また、発信を始めようと思い立ったのが昨日の為、すでに窮地に立たされてます笑
(何書けば良いんだろう、、)
いろんな先輩方のブログを参考にさせて頂き、これから自分の方向性を見つけていきます。
ーーーーーーーーーーー
タイトルの「deleteとdelete_if、delete_at」ですが、本日の学習でなんとなく違いが分かったものの、「このままでは確実に忘れるな」と思ったので、定着させるために書きます。
①違い
delete
・配列の中から指定した値に完全一致する要素を削除するメソッド。
delete_at
・配列内の特定の位置にある要素を削除したい場合に使うメソッド。
delete_if
・順番に取り出した配列の要素をブロックに渡し、その戻り値が真であれば要素を削除するメソッド。
②使い分け
delete
・配列から値が3の要素を削除したい場合
a = [1, 2, 3, 1, 2, 3]
a.delete(3)
a => [1, 2, 1, 2]
delete_at
・配列から3番目の要素を削除したい場合
a = [1, 2, 3, 1, 2, 3]
a.delete_at(2)
a => [1, 2, 1, 2, 3]
delete_if
・配列から値が偶数の要素を削除したい場合
a = [1, 2, 3, 1, 2, 3]
a.delete_if(&:even?)
a => [1, 3, 1, 3]
(参考:プロを目指す人のためのRuby入門 P89, P92, P93)
ーーーーーーーーーーー
本日はチェリー本4章(配列や繰り返し処理を理解する)まで完了。
理解できると楽しくなってきて、こう変えるとどうだろう?ということにこだわるあまり1時間で5Pしか進まないこともあります笑
(どうしたらもっと早く進むんだろう、、)
あと250P以上もあるので、明日は最低限5章を終わらせます!