【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を使うと、配列を列(つまりキュー)として扱うことになります。こういった列と集合の違いを押さえておいてください。

    まとめ

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


    ポテパンが提供するサービスについて

    本メディア「ポテパンスタイル」を運営する株式会社ポテパンは、エンジニアキャリア領域で複数サービスを提供しています。

    ポテパンフリーランス

    ポテパンフリーランス

    フリーランスエンジニアの方に高単価案件をご紹介しております。弊社ではフリーランス案件を常時300件ほど保有しており、その中からあなたに適した案件をご案内いたします。また、これから独立してフリーランスになる方の無料個別相談も承っております。フリーランスになった後の案件獲得方法やお金面(税金や保険など)についてお答えいたします!

    ポテパンキャリア

    ポテパンキャリア

    エンジニア職専門の転職エージェントです。ポテパンキャリアでは、技術のわかるエージェントがあなたの転職をサポートします。エージェント自身がエンジニアなので、あなたと同じ目線で仕事内容や今後のキャリアについて一緒に考えることができます。

    ポテパンキャンプ

    ポテパンキャンプ

    ポテパンキャンプでは、RubyにてゼロからオリジナルのECサイトを作り上げてる3ヶ月間の実践型カリキュラムを提供しております。すでに本スクールの卒業生は、エンジニア職として様々な企業様に就職しております。なお、本スクールは受講料10万円と他社スクールに比べ格安となっており、またポテパンからご紹介させていただいた企業へ就職が決まった場合は、全額キャッシュバックいたします。



    株式会社ポテパンは、企業とエンジニアの最適なマッチングを追求しています。気になるサービスがあれば、ぜひ覗いてみてください!

    ポテキャンバナー ポテキャリバナー

    この記事をシェア

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

    関連ワード

    pickup









    ABOUT US

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

    READ MORE