Rubyの強力な機能の一つに、柔軟で直感的なコレクション(データを集めて格納するオブジェクト)があります。他の言語でのListやMap、Dictionaryに相当するものを学びましょう。この章では、Array(配列)、Hash(ハッシュ)、そして Range(範囲)を扱います。
Rubyの Array は、他の言語における動的配列やリストに似ています。順序付けられた要素のコレクションであり、異なるデータ型の要素を混在させることができます。
配列は [] (角括弧) を使って生成します。
要素へのアクセスは [index] を使います。Rubyのインデックスは0から始まり、負のインデックス(末尾からのアクセス)をサポートしているのが特徴です。
要素の追加には << (shovel演算子) や push メソッドを使います。 pop は末尾の要素を削除し、それを返します。
Array には非常に多くの便利なメソッドが用意されています。
Hash は、キーと値のペアを格納するコレクションです。他の言語のMap、Dictionary、連想配列に相当します。
Rubyのハッシュには2つの主要な記法があります。
=>(ハッシュロケット)を使う記法です。キーには任意のオブジェクト(文字列、数値、シンボルなど)を使用できます。
Ruby 1.9から導入された、より簡潔な記法です。JavaScriptのオブジェクトリテラルに似ています。
注意: この記法を使うと、キーは自動的にシンボル (Symbol) になります。
現在では、キーが固定されている場合は、シンボルを使った新シンタックスが好まれます。
Range は、連続する値のシーケンスを表すオブジェクトです。for ループや case 文での条件分岐によく使われます。
範囲の作成には (start..end) と (start...end) の2つの形式があります。
..(ドット2つ)は、終端の値を含む範囲を作成します。
...(ドット3つ)は、終端の値を含まない(未満の)範囲を作成します。
Range は case 文と組み合わせると非常に強力です。
ruby grade_checker.rb[] で作成する順序付きリスト。<< で追加、pop で取り出し、[-1] で末尾にアクセスできます。
{} で作成するキー/バリューペア。:name のようにコロンで始まる識別子。イミュータブルで高速なため、ハッシュのキーに最適です。{ key: "value" } というモダンな記法が使えます。(1..10)(含む)と (1...10)(含まない)があり、連続したシーケンスを表現します。あなたのショッピングカートを表現する配列 cart があります。
cart は、商品情報を表すハッシュの配列です。
以下の操作を行ってください。
cart に { name: "Orange", price: 120 } を追加する。cart の最初の商品の名前 ("Apple") を表示する。ruby practice5_1.rbユーザーの設定を保存するハッシュ settings を作成してください。
:theme, :notifications)。:theme の初期値は :light、:notifications の初期値は true とします。settings を作成した後、:theme の値を :dark に更新してください。ruby practice5_2.rb