my.code();

my.code();

  • Python
    • 1.環境構築と基本思想
    • 2.基本構文とデータ型
    • 3.リスト、タプル、辞書、セット
    • 4.制御構文と関数
    • 5.モジュールとパッケージ
    • 6.オブジェクト指向プログラミング
    • 7.ファイルの入出力とコンテキストマネージャ
    • 8.例外処理
    • 9.ジェネレータとデコレータ
  • Ruby
    • 1.rubyの世界へようこそ
    • 2.基本構文とデータ型
    • 3.制御構造とメソッド定義
    • 4.すべてがオブジェクト
    • 5.コレクション (Array, Hash, Range)
    • 6.ブロックとイテレータ
    • 7.クラスとオブジェクト
    • 8.モジュールとMix-in
    • 9.Proc, Lambda, クロージャ
    • 10.標準ライブラリの活用
    • 11.テスト文化入門
    • 12.メタプログラミング入門
  • C++
    • 1.C++の世界へようこそ
    • 2.型システムとメモリ
    • 3.関数と参照
    • 4.ポインタと動的メモリ
    • 5.クラスの基礎
    • 6.クラスを使いこなす
    • 7.継承とポリモーフィズム
    • 8.テンプレート
    • 9.STL ①:コンテナ
    • 10.STL ②:アルゴリズムとラムダ式
    • 11.RAIIとスマートポインタ
    • 12.プロジェクトの分割とビルド

第5章: コレクション (Array, Hash, Range)

Rubyの強力な機能の一つに、柔軟で直感的なコレクション(データを集めて格納するオブジェクト)があります。他の言語でのListやMap、Dictionaryに相当するものを学びましょう。この章では、Array(配列)、Hash(ハッシュ)、そして Range(範囲)を扱います。

配列 (Array)

Rubyの Array は、他の言語における動的配列やリストに似ています。順序付けられた要素のコレクションであり、異なるデータ型の要素を混在させることができます。

生成と操作

配列は [] (角括弧) を使って生成します。

要素へのアクセスは [index] を使います。Rubyのインデックスは0から始まり、負のインデックス(末尾からのアクセス)をサポートしているのが特徴です。

要素の追加と削除

要素の追加には << (shovel演算子) や push メソッドを使います。 pop は末尾の要素を削除し、それを返します。

便利なメソッド

Array には非常に多くの便利なメソッドが用意されています。

ハッシュ (Hash)

Hash は、キーと値のペアを格納するコレクションです。他の言語のMap、Dictionary、連想配列に相当します。

2種類のシンタックス

Rubyのハッシュには2つの主要な記法があります。

1\. 旧シンタックス (Rocket Syntax)

=>(ハッシュロケット)を使う記法です。キーには任意のオブジェクト(文字列、数値、シンボルなど)を使用できます。

2\. 新シンタックス (JSON-like Syntax)

Ruby 1.9から導入された、より簡潔な記法です。JavaScriptのオブジェクトリテラルに似ています。

注意: この記法を使うと、キーは自動的にシンボル (Symbol) になります。

現在では、キーが固定されている場合は、シンボルを使った新シンタックスが好まれます。

範囲 (Range)

Range は、連続する値のシーケンスを表すオブジェクトです。for ループや case 文での条件分岐によく使われます。

範囲の作成には (start..end) と (start...end) の2つの形式があります。

`..` (終端を含む)

..(ドット2つ)は、終端の値を含む範囲を作成します。

`...` (終端を含まない)

...(ドット3つ)は、終端の値を含まない(未満の)範囲を作成します。

範囲の活用例

Range は case 文と組み合わせると非常に強力です。

grade_checker.rb
ruby grade_checker.rb

この章のまとめ

  • Array: [] で作成する順序付きリスト。<< で追加、pop で取り出し、[-1] で末尾にアクセスできます。
    • Hash: {} で作成するキー/バリューペア。
    • Symbol: :name のようにコロンで始まる識別子。イミュータブルで高速なため、ハッシュのキーに最適です。
    • Hashのシンタックス: キーがシンボルの場合、{ key: "value" } というモダンな記法が使えます。
    • Range: (1..10)(含む)と (1...10)(含まない)があり、連続したシーケンスを表現します。

練習問題1: ショッピングカートの管理

あなたのショッピングカートを表現する配列 cart があります。 cart は、商品情報を表すハッシュの配列です。 以下の操作を行ってください。

  1. cart に { name: "Orange", price: 120 } を追加する。
  2. cart の最初の商品の名前 ("Apple") を表示する。
practice5_1.rb
ruby practice5_1.rb

練習問題2: ハッシュの操作

ユーザーの設定を保存するハッシュ settings を作成してください。

  • キーにはシンボルを使用します (:theme, :notifications)。
  • :theme の初期値は :light、:notifications の初期値は true とします。
  • settings を作成した後、:theme の値を :dark に更新してください。
practice5_2.rb
ruby practice5_2.rb