AR삽질러

Ruby ハッシュ 본문

Ruby/Ruby-日本語

Ruby ハッシュ

아랑팡팡 2023. 12. 18. 14:05
728x90

 

Ruby ハッシュ

 

ハッシュ

 - Rubyでは、ハッシュは鍵と値のペアで構成されたデータ構造です。 ハッシュは配列に似ていますが、インデックスの代わりに固有のキーを使用してデータにアクセスします。 これらの特性により、ハッシュは迅速にデータを保存および検索でき、さまざまな形式のデータを柔軟に処理できます。

 - キー(Key) とは値(Value)の組み合わせでデータを管理するオブジェクト

 - 連想配列、ディクショナリ、マップという場合も。

 

配列(Array)と ハッシュ(Hash)

 

 配列(Array)
1) 手順のあるリストとして、各要素にインデックスを介してアクセスできる。
2) 同じタイプまたはさまざまなデータタイプの要素を保存できる。
3) 順次アクセスが必要な場合に役立つ。

 

 ハッシュ(Hash)
1) キー値ペアでデータを保存する。
2) データへの迅速なアクセスに役立つ。
3) キーを介して直接値を見つけることができ、探索が高速。

 

ハッシュの作成

 - 空のハッシュを作成

 { } 

 - キーと値の組み合わせを3つ格納するハッシュを作成

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

 

基本的な使い方
 1) ハッシュ生成

{} # 空のヘッショを生成する
a = { 'name' => 'Arang', 'birth' => 0920 }

 

 2) ハッシュから値へのアクセスと修正

puts a['name']
# Arang

a['age'] = 20
# {"name"=>"Arang", "birth"=>469, "age"=>20}

a['age'] = 21
puts a
# {"name"=>"Arang", "birth"=>469, "age"=>21}

 

 3) ハッシュ要素の削除

a.delete('age')
# {"name"=>"Arang", "birth"=> 0920}

 


 

シンボル

 Rubyでシンボル(Symbol)は固有の名前を持つ不変の文字列のような値です。 シンボルは、主にハッシュのキーまたはさまざまなプロパティの名前で使用されます。

 シンボル : symbol_name形式で表現され、一般文字列よりメモリ使用が効率的でより速い比較演算を提供します。

 - ソースコード上では文字列のように見えるが、内部では整数として扱われる。

 - シンボルを使ったキーの方が、文字列をキーに使う場合に比べて、Hashのアクセスは速いとされる。

シンボルの特徴
 1) 不変性(Immutability) : シンボルは一度生成されると変更できません。
 2) 固有性: 同じ名前のシンボルは、プログラム全体で 1 つのオブジェクトとして存在します。 つまり、2 つの同じシン ボルは同じオブジェクトを参照します。
 4) 効率性(Efficiency) : 文字列に比べてメモリ使用と比較速度の面で効率的です。

 

 1) ハッシュ生成

a = {name: 'Arang', birth: 1218 }
puts a
# {:name=>"Arang", :birth=>1218}

puts a[:name]
# Arang

puts a[:birth]
# 1218

 

 2) ハッシュから値へのアクセスと修正

a[:age] = 20
puts a
# {:name => 'Arang', :birth => 1218, :age => 20}

a[:age] = 21
puts a
# {:name => 'Arang', :birth => 1218, :age => 21}

 

 3) ハッシュ要素の削除

a.delete(:age)
puts a
# {:name => 'Arang', :birth => 1218 }

 

a.keys : ヘッショのすべてのキーを配列に返す。

a.values : ヘッショのすべての値を配列に返す。

a.has_key?(:name) : :nameがあるか確認

a.size : key-valueの数を返す。

 

 

 

 

 

 

 

 

 

 

728x90
반응형
LIST

'Ruby > Ruby-日本語' 카테고리의 다른 글

Ruby オリジナルのクラスを作成する  (0) 2023.12.18
Ruby 戻り返し処理  (0) 2023.12.18
Ruby 配列  (2) 2023.12.18
Ruby 出力puts, print, p, pp  (0) 2023.12.16
Ruby FizzBuzzメソッド  (0) 2023.12.15