Rubyのdeleteメソッドの使い方を現役エンジニアが解説【初心者向け】

初心者向けにRubyのdeleteメソッドの使い方を現役エンジニアが解説しています。deleteメソッドを使うと配列から指定した要素を削除することが出来ます。指定したインデックスを削除するdelete_atメソッドも使ってみましょう。

TechAcademyマガジンはオンラインのプログラミングスクールTechAcademy [テックアカデミー]が運営する教育×テクノロジーのWebメディアです。初心者でもすぐ勉強できる記事が2,000以上あります。

Rubyのdeleteメソッドの使い方について解説します。Rubyについてそもそもよく分からないという方は、Rubyとは何なのか解説した記事をまずご覧ください。

 

なお本記事は、TechAcademyのWebアプリケーションオンラインブートキャンプの内容をもとに紹介しています。

田島悠介

今回は、Rubyに関する内容だね!

大石ゆかり

どういう内容でしょうか?

田島悠介

deleteメソッドの使い方について詳しく説明していくね!

大石ゆかり

お願いします!

 

deleteメソッドとは

deleteメソッドは、配列から引数で指定された要素を削除します。戻り値には削除した要素が入り、指定した要素がない場合はnilを返します。

関連したメソッドとして、delete_atメソッドがあります。こちらは、index要素を指定して削除するメソッドです。

こちらもよく使うので、覚えましょう。

 

deleteメソッドで配列から要素を削除する方法

基本的な使い方は、引数に削除する要素を渡すだけです。

fruits = ["apple", "orange", "banana", "kiwi","banana"]
fruits.delete("banana")

 

“banana”と一致する要素が削除されます。この時、一致する全ての要素が削除されることに注意してください。
この場合、3番目の”banana”も5番目の”banana”も削除されます。

delete_atメソッドは以下のように使用します。

 

fruits = ["apple", "orange", "banana", "kiwi","banana"]
fruits.delete_at(2)

 

delete_atは、インデックスで要素を削除します。
インデックスは0から始まるので、この場合3番目の”banana”のみ削除します。

[PR] Rubyのプログラミングで挫折しない学習方法を動画で公開中

実際に書いてみよう

それでは、実際に書いて動作を確認しましょう。
まずは基本的なdeleteメソッドの使用方法です。

# 配列を宣言
fruits = ["apple", "orange", "banana", "kiwi","banana"]
p fruits
# bananaを指定して削除
fruits.delete("banana")
p fruits

 

実行結果は以下の通りです。

["apple", "orange", "banana", "kiwi", "banana"]
["apple", "orange", "kiwi"]

 

次にdelete_atメソッドです。インデックスを指定して削除します。

 

# 配列を宣言
fruits = ["apple", "orange", "banana", "kiwi","banana"]
p fruits
# indexを指定して削除。3番目を削除
fruits.delete_at(2)
p fruits

 

実行結果は以下の通りです。

["apple", "orange", "banana", "kiwi", "banana"]
["apple", "orange", "kiwi", "banana"]

 

最後に存在しない要素を削除して場合の実行結果を見てみます。

fruits = ["apple", "orange", "banana", "kiwi","banana"]
p fruits
# 存在しない要素を削除
p fruits.delete("lemon")
p fruits

 

実行結果は以下の通りです。nilが返ってくることを確認してください。

["apple", "orange", "banana", "kiwi", "banana"]
nil
["apple", "orange", "banana", "kiwi", "banana"]

以上で説明は終わりです。よく使うメソッドなので、ぜひ使い方をマスターしてください。

 

筆者プロフィール

メンター金成さん

フリーランスエンジニア。
Railsの案件を中心に、様々なアプリケーションを開発してます。

使える言語は、ruby python go 。最近はgoにハマってます。

 

大石ゆかり

内容分かりやすくて良かったです!

田島悠介

ゆかりちゃんも分からないことがあったら質問してね!

大石ゆかり

分かりました。ありがとうございます!

TechAcademyでは初心者でも最短4週間でエンジニアになれるRuby on Railsオンラインブートキャンプを開催しています。

現役エンジニアがパーソナルメンターとして受講生に1人ずつつき、マンツーマンのメンタリングで学習をサポートし、最短4週間でオリジナルWebサービスを開発することが可能です。

また、現役エンジニアから学べる無料のプログラミング体験会も実施しているので、ぜひ参加してみてください。