本文へスキップ
BecomeCoder

Rubyコース · 第4章 ハッシュ · レッスン18

シンボルとキー ― `name:` という書き方

ブラウザで完結

導入

ハッシュのキーには、文字列 "name" だけでなくシンボルという特別な値もよく使われます。Ruby のコードでは、シンボルをキーにしたハッシュの方が圧倒的によく登場します。

説明

シンボルは :name のように : を頭に付けて書きます。文字列に似ていますが、同じ名前のシンボルはプログラム内でただ1つの実体として扱われるため、キーとして使うときに効率がよいという特徴があります。

person = {name: "花子", age: 25}
puts person[:name]
puts person[:age]

person2 = {"name" => "花子", "age" => 25}
puts person2["name"]

{name: "花子"}{:name => "花子"}省略記法です。キーがシンボルのときだけ、キー: 値 という短い書き方ができます。取り出すときは person[:name](コロンを頭に付けたシンボル)でアクセスします。文字列キーのハッシュと混同しないよう注意しましょう。

やってみよう

{name: "花子"} のようなシンボルキーの書き方と、{"name" => "花子"} という文字列キーの書き方を両方書いて、取り出し方の違い(person[:name]person["name"])を確かめましょう。

演習

ハッシュ user = {name: "次郎", age: 30} を作り、:name の値を puts で表示してください(次郎)。

ヒント1を見る

user = {name: "次郎", age: 30} のあと puts user[:name] と書きます。

ヒント2を見る

シンボルキーの取り出しは user[:name](コロン付き)です。

実際に動かしてみよう

下のエディタにRubyを書いて「実行」を押すと、学習用シミュレータが puts / print / p の出力を表示します(本物のRubyではなく、教材の範囲を再現した軽量な自作エンジンです)。配列・ハッシュ・ブロック(each/map/select)・メソッド・クラス・モジュール・例外なども動きます。本文の例を書き換えて動かしてみましょう(gem・Rails・ファイル入出力など一部の機能は対象外です。文字列を伸ばすときは str << も可能ですが、変数に反映されるのは str += です)。

Ruby — ブラウザ内で実行(学習用シミュレータ)

Rubyの教材サブセットを動かす学習用シミュレータを読み込みます(本物のRubyではなく、動きを再現した軽量な自作エンジンです)。
スクロールして表示された時点でも自動で読み込まれます。