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章を終わらせます!