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です♪
こちらのリンクを経由すると1万円引きになります。
RUNTEQを通じて開発学習の末、受託開発企業をご紹介いただき、現在も双方とご縁があります。
もし、興味がありましたらお気軽にコメントか、TwitterのDMでお声掛けください。