Ruby

Ruby 配列まとめ

プログラミング言語はRubyから勉強し始め、今はPHPを勉強しています。

RubyとPHPで似ている点や同じようなコードが多々あるので理解しやすいのですが、
実際コードを書くとどうしてもごちゃ混ぜになってしまうので、
PHPの勉強を進めながら、こちらではRubyについて書いていくことにしました!

配列

配列とはいくつかのデータを種類別に箱の中に入れたようなイメージです。
まとめてデータを入れて置くことによって、複数の処理が1度にできると言う利点があります。

hanako,taro,mario
この3つの名前を使いましょう。

配列ではなく、変数に代入した場合
name1 = "hanako"
name2 = "taro"
name3 = "mario"


puts name1
puts name2
puts name3


⦅プレビュー⦆
hanako taro mario

名前を出力する作業を3回も行なっています。
このように1つ1つをputsして表示させるのは大変なので、1つの中にまとめて入れてしまい、
その箱をputsすることで、中身の要素をパパーっと表示させます。
例えば、namesと言う箱の中に、hanako,taro,marioといった名前を入れるとします。

names = ["hanako","taro","mario"]
namesにhanako,taro,marioの3つの名前を代入しました。
この場合のnamesは配列の変数名、hanako,taro,marioは要素。
要素は[]の中に、""で囲み、1つ1つの間は,で区切って書きます。

puts names

⦅プレビュー⦆
hanako taro mario

インデックス番号

また、配列は順番関係なく入っている訳ではなく、
インデックス番号といって、入れた順に0から番号が割り振られています。

ここでの場合、
0:hanako
1:taro
2:mario
となっており、このインデックス番号を指定して、
その要素のみを取り出すことも出来ます。

puts names[1]

⦅プレビュー⦆
taro

変数展開

代入した変数の値は変数展開を使って文字列の中に入れることができます。

puts "私の名前は#{names[3]}です"
文字列の中の値を入れたい場所に#{変数名[インデックス番号]}を入れ込むだけ!

⦅プレビュー⦆
私の名前はmarioです

繰り返し処理

each文

上記の変数展開した文字列を、インデックス番号別に出力させるには、
puts "私の名前は#{names[インデックス番号]}です"
番号の数だけこのコードを書かなくてはいけません…これまためんどくさい

そういった繰り返し同じ処理をしたい場合にはeach文を使います。

配列 .each do |変数名|
#実行したい処理
end

ここでの場合は
配列にnames、変数名は要素の中身を表すものnameとし、
私の名前は○○です、と表示させるようにしたいとしましょう。

names .each do |name|
puts "私の名前は#{name}です"
end


私の名前はhanakoです
私の名前はtaroです
私の名前はmarioです

ハッシュ

配列と同じように複数の値を扱えるものですが、
さらにそれぞれにキーと呼ばれる名前をつけることが出来ます。

1人のユーザーの情報が
名前がhanako、年齢が28歳の時
user = {"name"=>"hanako","age"=>28}

と、ここまで書きましたがボツ記事。。

同じ処理でもRubyだとこう、PHPだとこう、って感じで書き直します。