初心者向け学習方法一覧はこちら
この記事はRubyの配列であるArrayとHashについての解説記事です。
ArrayやHashを使用することで文字列や数字をまとめて1つの変数として扱うことができます。
この記事ではサンプルコードを実行しながら説明していきます。
もし、Rubyの実行環境がない方はこちらの記事を参考に環境構築されることをおすすめします!
変数をまとめるArray
Arrayとはいくつもの数字や文字列を格納することができる箱のようなものです。
また、目的のデータが何番目に格納されているかを指定することでデータを取り出すことができます。
RubyのArrayについての公式ドキュメントはこちらです。
また配列の中に複数の配列を入れることもできます。
イメージとしてはマトリョーシカのようなことも可能です。
変数を大量に用意せずとも変数1つでいくつもの数字や文字列を扱うことができることがメリットです。
例えば売上のような更新されていき、蓄積していくデータにArrayを使用することでまとめて管理することができます。
使用方法
まずArrayの呼び出し方を2通り紹介します。
まずメジャーな方法としては
array = [要素1,要素2,・・・ ]
とします!
各要素をカンマで区切り、角括弧という半角入力で入力できる括弧で囲むことで呼び出すことができます!
もう一つの方法は
array = Array.new(配列の長さ,要素)
とするオブジェクト指向的な方法です。
オブジェクト指向についてはこちらの記事で詳しく解説しておりますので興味のある方はこちらをどうぞ!
このオブジェクト指向的な方法では要素はすべて同じ値になります。
しかし長さが100個もある配列を作ろうと思った場合にすべて手で打つことは無理がありますのでそういった場合はオブジェクト指向的な方法で呼び出します。
例としてデフォルトの値として”default”を採用すれば以下のようなコードになります。
array = Array.new(100,”default”)
次にArrayに入っている要素を取り出す方法について解説します。
配列の要素を取り出すためにはインデックス番号という配列の入っている番号を指定することで取り出すことができます。
ただしインデックス番号は0,1,2,・・・と0から始まる点に注意が必要です!
サンプルコードはこのようになります。
array = ["Aaa","Bbb","Ccc"]
p array[0]
#"Aaa"
p array[1]
#"Bbb"
p array[2]
#"Ccc"
内容の変更についても解説します。
内容の取り出し方と同様にインデックス番号で要素を指定し代入することで内容を変更することができます。
サンプルコードはこのようになります。
array = ["Aaa","Bbb","Ccc"]
p array
# ["Aaa","Bbb","Ccc"]
array[0] = "Nnn"
p array
#["Nnn","Bbb","Ccc"]
また、Arrayで知っておくと便利なメソッドについて紹介します!
今回紹介するメソッドは以下の3つです。
- length
- push
- delete
lengthメソッドは配列の長さを取得することができます。
lengthメソッドは配列の長さに上限を定めたい場合に現在の配列の長さを取得するために使用します。
lengthメソッドを使用したい場合はこのようにします。
array = ["Aaa","Bbb","Ccc"]
p array
#["Aaa","Bbb","Ccc"]
p array.length
#3
pushメソッドは配列の最後に要素を追加することができます。
配列に最新の情報を追加したいという場合に使用します。
pushメソッドを使用したい場合はこのようにします。
array = ["Aaa","Bbb","Ccc"]
p array
#["Aaa","Bbb","Ccc"]
array.push("Ddd")
p array
#
p array
#["Aaa","Bbb","Ccc","Ddd"]
deleteメソッドは配列にある要素を削除することができます。
配列中の未知な情報のみを取得したい場合に既知の情報を削除するために使用します。
deleteメソッドを使用したい場合はこのようにします。
array = ["Aaa","Bbb","Ccc"]
p array
#["Aaa","Bbb","Ccc"]
array.delete("Aaa")
p array
#["Bbb","Ccc"]
対応表をつくるHash
Hashとは「キー」と「値」という2つを対にしたものを要素とした箱のことです。
Hashではキーを使用することで値を呼び出すことができます。
つまり他の表現をするとHashとは、Arrayのインデックス番号が自由に設定できるようになったものです。
RubyのHashについての公式ドキュメントはこちらです。
Hashの使用例を挙げるならば情報についてのフォーマットを定める場合です。
例えば顧客情報を管理したい場合に顧客情報のフォーマットとして名前、電話番号、メールアドレスすれば顧客名[”名前”]とすれば顧客の名前を取得することができます。
余談ですがArrayでも同様の処理は可能です。
しかし、Array2つとインデックス番号1つが必要な為、変数を減らしてコードの可読性を上げるためにHashを使用したスマートなコードをかけるように目指しましょう!
使用方法
Hashを使用する方法は基本的にはArrayと同じです。
しかし呼び出し方と内容の変更方法が少しだけ異なるためその違いについて解説します。
まず呼び出す方法についてです。
Hashを呼び出すには
hash = {キー1:値1,キー2:値2,・・・ }
とします!
Hashを呼び出すためにはキーと値をコロンで対にした要素をカンマで区切り、中括弧という半角入力で入力できる括弧で囲むことで呼び出すことができます。
次に取り出す方法はArrayではインデックス番号を指定しましたがHashはキーを入力することで呼び出すことができます!
array[キー]
#値
サンプルコードはこのようになります。
hash = {"key1":"value1","key2":"value2","key3":"value3"}
p hash["key1"]
#"value1"
hash["key1"] = "VALUE1"
p hash
#"key1":"VALUE1","key2":"value2","key3":"value3"
自販機を実装しよう!
それではHashと文字列の入力を受け取ることのできる「getsメソッド」を使用して自販機を再現したプログラムを作成しましょう!
まず商品と価格を対応させたメニューをHashを使用して作成します!
コードはこのようになります。
menu = {"コーラ":"180","サイダー":"160","メロンソーダ":"200","コーヒー":"100"}
p menu.keys
次にほしい商品の入力を受け付けるコードを作成します。
コードはこのようになります。
p "欲しい物を入力してください"
input = gets.chomp.to_sym
output = menu[input]
ここで注意してほしいことが2つあります!
まず、コマンドラインから入力した後に自動的に入力されてしまう改行コードを削除するために「chompメソッド」を使用していること。
キーは文字列ではなくシンボルという型ですので、入力の文字列をシンボルに変換する「to_symメソッド」を使用していることです。
最後に欲しい商品を出力します。
コードはこのようになります。
p input.to_s + "は" + output + "円です"
ここではさきほどと逆にシンボルを文字列に変換する「to_sメソッド」を使用している点に注意が必要です!
これで自販機を再現したプログラムができました。
全体のコードはこのようになります。
menu = {"コーラ":"180","サイダー":"160","メロンソーダ":"200","コーヒー":"100"}
p menu.keys
p "欲しい物を入力してください"
input = gets.chomp.to_sym
output = menu[input]
p input.to_s + "は" + output + "円です"
実際に実行してみるとこのようになります。
まとめ
ここまでの話をまとめます。
Arrayは
array = [要素1,要素2,・・・ ]
で呼び出すことができ、数字や文字列などをまとめて扱うことができます。
Hashは
hash = {キー1:値1,キー2:値2,・・・ }
で呼び出すことができ、キーと値についての対応表を作ることができます。
また当記事ではRuby初学者に向けた記事を解説しています。
こちらも是非どうぞ!
プログラミングスクールの選び方
転職を検討中の方向け
フリーランス・副業で活躍したい方向け
教養・キャリアアップしたい方向け
給付金について詳しく知りたい方向け