0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【Ruby】配列への追加(push・unshift)・削除(pop・shift)が覚えずらい

Last updated at Posted at 2024-10-10

はじめに

こんにちは、progateでRubyを勉強したのち「ゼロからわかるRuby超入門」を勉強しています。
本書で配列への追加と削除コマンドを習ったのですが、覚えずら過ぎたので自分なりにまとめてみました。
同じ境遇の方の力になれば幸いです

環境:ruby 3.3.5

それぞれの概要

まずは追加・削除コマンドのそれぞれの概要について説明したのち、整理していこうと思います

push

まず、pushは配列の末尾に要素を追加します。

push.rb
drinks = ["カフェラテ", "コーヒー"]
drinks.push("紅茶")
p drinks  # => ["カフェラテ", "コーヒー", "紅茶"]

unshift

unshiftは、配列の先頭に要素を追加するメソッドです。

unshift.rb
drinks = ["カフェラテ", "コーヒー"]
drinks.unshift("紅茶")
p drinks  # => ["紅茶", "カフェラテ", "コーヒー"]

pop

popは、配列の末尾の要素を削除するメソッドです。

pop.rb
drinks = ["カフェラテ", "コーヒー"]
drinks.pop("コーヒー")
p drinks  # => ["カフェラテ"]

shift

shiftは配列の先頭の要素を削除するメソッドです。

shift.rb
drinks = ["カフェラテ", "コーヒー", "紅茶"]
removed = drinks.shift
p removed  # => "カフェラテ"
p drinks   # => ["コーヒー", "紅茶"]

覚え方

これで追加・削除の方法は理解していただけたと思います。
ただし、これだとpushとunshiftどっちが先頭だったっけ?とかshiftとunshiftどっちが追加だったっけ?などいろいろ忘れてしまうと思います。
まずは追加・削除で分類するのではなく、先頭か末尾で分類しましょう。
pushって後ろから押すイメージがあると思うので文末、同じpから始まるのでpopも文末です。
残った2つは先頭系のコマンドであると認識しましょう。

先頭のコマンド

unshiftshiftは先頭のコマンドですね。
次にこれがどっちがどっちなのかを判別できるようになりましょう。
まず一番単語として聞きなじみがあるのはshiftだと思います。
shiftは英単語で位置を移動するって意味があります。先頭の単語が削除されるので、その空いているスペースをつめる(シフトする)って感じです。
unshiftはその逆で、後ろにシフトしてもらって入れてもらうってイメージです
画像1.png

末尾系

pushpopは末尾コマンドですね。
pushは何となくわかると思いますが、後ろから押して(プッシュする)追加するって感じです。
popは日本語的な意味でいえば軽い感じのやつって意味があります。末尾かどうかはpushと同じくpから始まるのでそれで覚えてもらって、popは早く(末尾から)でたいと思っていて、ポンっと出て行ってしまう感じですね。
popは英単語で破裂とか爆発的な意味もあるのでそれで覚えてもいいかもしれないですね
画像3.png

まとめ

本日は配列への追加(push・unshift)・削除(pop・shift)が覚えずらいというタイトルでしたがイメージわきましたか。
こういうイメージを持っているだけで長期記憶に定着しやすいのですし、私は覚えずらいものは何かしらのとっかかりを見つけて覚えてますw
これを見ているということはrubyを始めて間もない方だと思うので一緒に勉強頑張りましょう。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?