Yanonoblog!

こつこつと

Rubyのハッシュとシンボルについて調べた内容

はじめに

Rubyのハッシュとシンボルについて調べた内容をまとめていきます。

ハッシュ

ハッシュはキーと値の組み合わせでデータを管理するオブジェクトです。

{ キー1 => 値1, キー2 => 値2, キー3 => 値3 }

要素の追加、変更、取得、繰り返し処理

ハッシュには要素を追加、変更、取得する方法や、要素を繰り返し処理する方法があります。

currencies = {'japan' => 'yen', 'us' => 'dollar', 'india' => 'rupee'}
# 追加・変更
currencies['italy'] = 'euro'
# 取得
currencies['india'] # => 'rupee'
# 繰り返し処理
currencies.each do |key, value|
    puts "#{key}: #{value}"
end

ハッシュの比較、要素数の取得、要素の削除

ハッシュの要素を比較したり、要素数を取得したり、特定のキーを持つ要素を削除する方法があります。

a = {'x' => 1, 'y' => 2}
b = {'x' => 999}

# 比較
a == b # => false

# 要素数の取得
a.size # => 2

# 要素の削除
a.delete('x') # => 1

シンボル

シンボルはコロンの後に名前を記述することで表現されます。

:apple
:japan

シンボルと文字列の違い

シンボルと文字列にはいくつかの違いがあります。

シンボルは内部で数値として管理されるため、処理が高速です。

シンボル 文字列
クラス Symbol String
中身の管理 整数として管理される 文字列
処理速度 早い(整数なので) シンボルより遅い
オブジェクトid(object_id) 同じシンボルなら同一 文字列ごとに異なる
破壊的変更(.upcase!など) できない できる

シンボルの特徴と用途

シンボルはメモリ効率が良く、値が変更されないため、ハッシュのキーなどによく使用されます。

# ハッシュのキー
currencies = { japan: 'yen', us: 'dollar' }

# 名前を識別する場合
status = :todo, :doing, :done

ハッシュのキーにシンボルを使う

ハッシュのキーとしてシンボルを使用する方法です。

currencies = { japan: 'yen', us: 'dollar', india: 'rupee' }
currencies[:us] # => "dollar"

メソッドのキーワード引数とハッシュ

メソッドの引数としてキーワード引数を使用する方法を示しています。

def method_name(param1: value1, param2: value2)
    # メソッドの内容
end

シンボルを%記法で表す

%記法を使用してシンボルを表現する方法です。

%i(apple orange melon) # => [:apple, :orange, :melon]

シンボルと文字列

文字列とシンボルを相互に変換する方法です。

# 文字列 → シンボル
"string".to_sym

# シンボル → 文字列
:symbol.to_s

おしまい

コメント

本記事の内容は以上になります!


プログラミングスクールのご紹介 (卒業生より)

お世話になったプログラミングスクールであるRUNTEQです♪

https://runteq.jp/r/ohtFwbjW

こちらのリンクを経由すると1万円引きになります。

RUNTEQを通じて開発学習の末、受託開発企業をご紹介いただき、現在も双方とご縁があります。

もし、興味がありましたらお気軽にコメントか、TwitterのDMでお声掛けください。

https://twitter.com/outputky