【Ruby入門】配列と操作(基本編)
  • facebookページ
  • twitterページ
  • 2017.09.12

    【Ruby入門】配列と操作(基本編)

    Rubyも他言語と同様に配列を扱うことができます。突然ですが、2つの配列array1とarray2を使った以下の条件式、何をしているか分かりますか?

    見慣れない<=>というのも気になるし、文全体で何をしているか見えてこないですよね。でも、これはRubyの中ではごく普通の記述なんです。

    本記事では、Rubyにおける配列の基本を解説します。さらに応用として、

    ・配列の要素を削除
    ・配列の要素を追加
    ・配列の比較
    ・配列の連結やマージ

    といった、実際の開発でよく使う配列の操作を解説します。ひととおり読むと、先の不思議な式が何をしているのか分かるだけでなく、配列の基本知識を得ることができますよ!

    配列の基本

    配列の作り方

    変数名のあとに、[ ]で要素を並べるだけで配列ができます。配列を表示するときは、pメソッドを使います。

    [実行結果]

    それぞれ、初期値を与えつつ配列を作ることができました。また「a = []」と要素がない配列を宣言し、「a[0] = 0」として要素を入れていくことも可能です。

    ここでちょっと意地悪しましょう。上記の配列numbersの11番目、つまり間を飛ばして値を入れるとどうなるでしょうか?

    [実行結果]

    エラーとはならず、6〜9番目を飛ばして(つまり間はnil)10番目に値6を入れることができました。このように、Rubyの配列では、間を詰める必要はありません。これは大きな特徴ですよね。

    配列の生成は、Arrayクラスのnewメソッドを使う方法もあります。

    [実行結果]

    100という要素を3つ持つ配列ができました。

    何らかの区切り文字(カンマや空白)で区切られた文字列から配列を作れます

    [実行結果]

    1つの文字列から配列ができました。

    配列の要素を指定する

    番号を指定して要素を取り出します。2つ目を取り出すには、以下のようにします。

    [実行結果]

    マイナスを使うと、後ろから何番目か、という指定ができます。-1が一番最後、-2, -3 … と増えていくたびに前にいきます。

    [実行結果]

    後ろから2つめが表示されました。

    配列を部分的に取り出し、別の配列にすることもできます。例えば、2〜4つ目を取り出してみましょう。

    [実行結果]

    2つ目から4つ目の要素で、新たに配列ができたのがわかります。

    配列の要素を削除する

    要素を削除するには、delete(要素の中身)を使います。

    [実行結果]

    cと一致する3番目の要素が消えました。

    要素番号を指定する場合は「array.delete_at(2)」と書き換えればOKです。

    その他便利なメソッドとして、compact! をご紹介します。compact! は、配列からnilの要素だけを消してしまうことができます。

    [実行結果]

    nilの要素が消えました。とりあえず配列に値をまばらに入れておき、最後にnilだけ一気に消してしまうことができるので、とても便利です。

    配列の要素を追加する

    配列の先頭に要素を追加するときは、unshift()を使います。

    [実行結果]

    末尾に追加するときは、push()を使います

    [実行結果]

    配列を比較する

    2つの配列の要素がすべて等しいかどうかを判定するには==を使います。以下の実行結果は、要素は全て等しいのでtrueと表示されます

    比較と同時に、どちらが大きかったのか、つまりどちらの要素が多かったのかも知りたい場合は、<=>を使います

    [実行結果]

    <=>演算子は、先頭から順に2つの配列を比較し、すべて等しいまま最後まで達すると0、array1の方が短ければ-1を、そうでなければ1を返します。どちらかが異なっていれば-1を返します

    配列を結合する

    2つの配列を結合するには、|か+を使います。|は同じ要素が含まれていれば集約し、+は重複に関係なく結合します。

    [実行結果]

    違いがお分かりいただけたでしょうか?

    配列は列?それとも集合体?

    配列のもつさまざまな挙動を学習するとき、ぜひ覚えておいてほしいことがあります。配列は、列と集合体という2つの側面を持つ、ということをです。

    連結するときは、 | を使うと和集合の意味になります。しかしpushを使うと、配列を列(つまりキュー)として扱うことになります。こういった列と集合の違いを押さえておいてください。

    まとめ

    この記事では、配列の基本や応用を解説しました。自分で何度も配列を作っては操作してみて、理解を深めてくださいね!



    優良フリーランス案件多数掲載中!
    フリーランスエンジニアの案件をお探しなら
    ポテパンフリーランス

    この記事をシェア

    • Facebookシェア
    • Twitterシェア
    • Hatenaシェア
    • Lineシェア
    pickup









    ABOUT US

    ポテパンはエンジニアと企業の最適なマッチングを追求する企業です。

    READ MORE