PickUp!話題のプログラミングスクールを厳選比較!

注目のプログラミングスクールは?

まずはじめに検討したいスクール

スクール選びで迷ったらココ!話題のプログラミングスクールを厳選比較しました。あなたの人生を変えるプログラミングスクールを見つけよう!

0から覚える Ruby の配列操作![その1] 便利メソッドを紹介!

ぽんぽこの画像

プログラミング学習者に役立つサイトを目指します! by ぽんぽこ @ponpoko_code(Twitter)

どんなプラグラミング言語にも配列という概念はあります。もちろんRubyにも配列が存在します。

この記事ではRubyの配列が持つ様々な便利メソッドを使用方法を添えて紹介していきたいと思います。


配列の作り方

はじめにRubyにおける配列の作り方を簡単に紹介しておきます。

Rubyは純粋オブジェクト指向言語と呼ばれるもので、この配列もArrayというクラスに属するものです。

そのため、他の言語ではインスタンスを作るような構文で配列を作ります。
(「p」 はデバッグ用に使われる関数でその次に指定した変数を出力してくれるものです。)

array = Array.new
p array

# []

毎回こう書かなければならないとしたらさすがにだるいですよね。でも、上記と同様の意味になるショートカットのような書き方が存在します。

array = []
p array

# []

初期値を与えることもできます。

array = [1, 2 ,3]
p array

# [1, 2 ,3]

独学は難しい・・・プログラミングはマンツーマン or グループレッスンで学ぶ
【完全無料のプログラミング&就活塾】




配列を操作する

Ruby言語に組み込みで用意されている便利なメソッドを含め、配列を操る様々な方法を簡単な使い方を交えて紹介していきます。

配列に値を追加する

配列に値を追加する方法を紹介します。追加する方法は幾つかあります。

「<<」演算子で末尾に値を追加する

「<<」演算子を用いることで配列の末尾に値を追加することが可能です。 必ず末尾に追加されることに注意しましょう。

array = Array.new
array << 1
array << 2
array << 3

p array
# [1, 2 ,3]

「push」メソッドで配列の末尾に値を追加する

「push」メソッドを利用することで「<<」演算子と同様の演算をすることができます。 指定した値を入れ配列の末尾に追加することができますが、メソッドを使用した配列自体が書きかわるので注意が必要です。

array = Array.new
array.push(1)
array.push(2)
array.push(3)

p array
# [1, 2 ,3]

「unshift」メソッドで配列の先頭に値を追加する

Rubyの配列には「unshift」というメソッドが存在し、これを用いることで指定した値を配列の先頭に追加することができます。
注意点としては「push」メソッドと同様にメソッドを使用した配列の中身が書き換わってしまうことです。
下記の例のように初期値として「10, 11, 12」を与えて作成した配列で「unshift」メソッドを使用して値を追加するその配列自他が書き換わります。

array = [10,11,12]
array.unshift(3)
array.unshift(2)
array.unshift(1)

p array
# [1, 2, 3, 10, 11, 12]

インデックスを指定して値を追加する

他のプログラミング言語でもよくある方法で値を追加することができます。配列の追加する位置を「[]」で指定して追加する方法です。

array = []
array[0] = 1 # 0番目に追加
array[1] = 3 # 1番目に追加
array[2] = 5 # 2番目に追加

p array
# [1, 3, 5]

下記のようにrubyの場合基本的に連番のインデックスを気にせずに値を追加することができてしまいます。
想定外のエラーはでないかわりにバグに気付きにくくながりがちですので注意しましょう
(「nil」は「値がないこと」を示す値です)

array = Array.new
array[3] = 1 # 3番目に1を追加 <- 0,1,2番目には自動的に「nil」が入る

# [nil, nil, nil, 1]

配列内の値を取り出す

配列内の値にアクセスする方法も幾つかあります。

インデックスを指定して値を参照する

配列といえばこの方法がもっとも一般的だと思います。下記は作成した配列の0番目の値を参照しています。

array = [1,2,3]
p array[0]

# 1

下記は存在しないインデックスを指定して配列にアクセスした例です。この場合「nil」が返ってきます。

array = [1,2,3]
p array[1000]

# nil

「at」メソッドを使って値を取り出す

「[]」で配列のインデックスを指定するのと同様のことが「at」メソッドを使用してもできます。
下記に例を示しますが、挙動もだいたい同じです。

array = [1,2,3]
p array.at(2)

# 3

p array.at(1000)

# nil

「pop」メソッドを使って末尾から値を取り出す

「pop」メソッドは「push」メソッドの対になるようなメソッドです。このメソッドを使用した配列の末尾から値を取り出します。
このメソッドを使用した場合、返り値として配列の末尾にあった値が返され、配列からその値は削除されます。
配列から値が削除されてしまうことに注意が必要です。

array = [1,2,3]
value = array.pop()

p value
# 3

p array
# [1,2]

「shift」メソッドを使って先頭から値を取り出す

「shift」メソッドは「unshift」メソッドの対になるようなメソッドです。このメソッドを使用した配列の先頭から値を取り出します。
上記で紹介した「pop」メソッドの先頭バージョンといった感じです。これもまた配列から値を削除してしまうのでその点だけ注意が必要です。

array = [1,2,3]
value = array.unshift()

p value
# 1

p array
# [2,3]

「last」メソッドを使って末尾の値を取り出す

「last」メソッドは「pop」メソッド同様に配列の末尾から値を取り出しますが、取り出した値を配列から削除したりはしません。
配列に影響を与えずに末尾の値を取得できるメソッドとなっています。

array = [1,2,3]
value = array.last()

p value
# 3

p array
# [1,2,3]

「first」メソッドを使って先頭の値を取り出す

「first」メソッドは「shift」メソッド同様に配列の先頭から値を取り出しますが、取り出した値を配列からの削除をしません。
「last」メソッド同様に配列に影響を与えずに末尾の値を取得できるメソッドとなっています。

array = [1,2,3]
value = array.first()

p value
# 1

p array
# [1,2,3]

まとめ

この記事ではRubyの配列への値の追加と取り出しを行う方法を紹介しました。同じようなことを行うための複数の方法が存在するのRubyの特徴です。

それぞれ微妙に挙動が違っていたりもするので、その違いをよく理解して使いましょう。

追記
少し応用的な使い方も解説しました。よかったらご覧ください。

0から覚える Ruby の配列操作![その2] 少し応用的な配列操作を解説

2017.04.03

この記事が気に入ったら
いいね!しよう

プログラミングは楽しい!人生だって変わるかも!
話題のプログラミングスクールを厳選比較(真っ先に検討したいスクール)

2017冬 最新版!話題のプログラミングスクールを厳選比較!

PickUp!2大オンラインスクール①

TechAcademy テックアカデミー

オンライン完結型!学べるジャンルも豊富

すべてオンライン!安い!チャット&ビデオ通話サポート!最短4週間で未経験からプロを育てるオンライン完結のスクール。無料体験もたっぷりあるため安心です。

PickUp!2大オンラインスクール②

CodeCamp コードキャンプ

1レッスン40分のマンツーマンレッスン

まさにオンライン家庭教師。プログラミングは自信がない...という人でもチャレンジする価値があるオンラインスクールです。ぽんぽこもCodeCampでプログラミングを習得しました!無料体験レッスンはぜひ利用しておきましょう。

ABOUTこの記事をかいた人

ぽんぽこ

ぽんぽこです。会社に通いながらも頑張ってプログラミングスクールで学びました。なんとプログラミングを覚えたらころころと人生が変わっていって転職もできました。毎日勉強の日々ですが、このサイトで少しでも役立つ情報を提供できたらと思っています。プログラミングって難しそうだな...と思ってもとりあえずやってみることが大事!

話題のプログラミングスクールを検索!その①

プログラミング言語から見つける
HTML/CSS JavaScript PHP Ruby Python Java
最新技術を学ぶ
AI 人工知能 Unity/VR
アプリ開発を学びたい
iPhone Android
CMSを学ぶ
Wordpress

話題のプログラミングスクールを検索!その②

スタイルから見つける
オンライン スクール通学
オトクに学びたい
無料体験等あり キャンペーン中 受講料0円
キャリアサポート
就職・転職サポートあり
2020年義務教育化
小学生向け
デザインも身に付けたい
Photoshop Illustrator