るりまサーチ (Ruby 2.5.0)

最速Rubyリファレンスマニュアル検索!
47件ヒット [1-47件を表示] (0.024秒)
トップページ > バージョン:2.5.0[x] > クエリ:y[x] > クラス:Hash[x]

別のキーワード

  1. psych psych_y
  2. psych y
  3. kernel y
  4. kernel psych_y

ライブラリ

キーワード

検索結果

Hash#compare_by_identity -> self (18304.0)

ハッシュのキーの一致判定をオブジェクトの同一性で判定するように変更します。

..._identity? #=> false
p h1["a"] #=> 100

h1.compare_by_identity

p h1.compare_by_identity? #=> true
p h1["a"] #=> nil # この"a"と最初の"a"とは違うオブジェクト
p h1[:c] #=> "c" # 同じ内容のシンボルはすべて同一
//}

@see Hash#compare_by_identity?...

Hash#compare_by_identity? -> bool (18304.0)

ハッシュがキーの一致判定をオブジェクトの同一性を用いて行っているならば真を返します。

...ハッシュがキーの一致判定をオブジェクトの同一性を用いて行っているならば真を返します。

//emlist[例][ruby]{
h1 = {}
p h1.compare_by_identity? #=> false

h1.compare_by_identity

p h1.compare_by_identity? #=> true
//}

@see Hash#compare_by_identity...

Hash#each_key -> Enumerator (18304.0)

ハッシュのキーを引数としてブロックを評価します。

...れた順です。
ブロック付きの場合selfを、
無しで呼ばれた場合Enumeratorを返します。

//emlist[例][ruby]{
{:a=>1, :b=>2}.each_key {|k| p k}
#=> :a
# :b

p({:a=>1, :b=>2}.each_key) # => #<Enumerator: {:a=>1, :b=>2}:each_key>
//}

@see Hash#each_pair,Hash#each_value...

Hash#each_key {|key| ... } -> self (18304.0)

ハッシュのキーを引数としてブロックを評価します。

...れた順です。
ブロック付きの場合selfを、
無しで呼ばれた場合Enumeratorを返します。

//emlist[例][ruby]{
{:a=>1, :b=>2}.each_key {|k| p k}
#=> :a
# :b

p({:a=>1, :b=>2}.each_key) # => #<Enumerator: {:a=>1, :b=>2}:each_key>
//}

@see Hash#each_pair,Hash#each_value...

Hash#empty? -> bool (18304.0)

ハッシュが空の時、真を返します。

ハッシュが空の時、真を返します。

//emlist[例][ruby]{
puts({}.empty?) #=> true
//}

絞り込み条件を変える

Hash#has_key?(key) -> bool (18304.0)

ハッシュが key をキーとして持つ時真を返します。

...ハッシュが key をキーとして持つ時真を返します。

@param key 探索するキーを指定します。

//emlist[][ruby]{
p({1 => "one"}.key?(1)) # => true
p({1 => "one"}.key?(2)) # => false
//}

@see Hash#value?...

Hash#key?(key) -> bool (18304.0)

ハッシュが key をキーとして持つ時真を返します。

...ハッシュが key をキーとして持つ時真を返します。

@param key 探索するキーを指定します。

//emlist[][ruby]{
p({1 => "one"}.key?(1)) # => true
p({1 => "one"}.key?(2)) # => false
//}

@see Hash#value?...

Hash#keys -> [object] (18304.0)

全キーの配列を返します。

...全キーの配列を返します。

//emlist[例][ruby]{
h1 = { "a" => 100, 2 => ["some"], :c => "c" }
p h1.keys #=> ["a", 2, :c]
//}

@see Hash#values,Hash#to_a...

Hash#transform_keys -> Enumerator (18304.0)

すべてのキーに対してブロックを呼び出した結果で置き換えたハッシュを返します。 値は変化しません。

...# => {"a"=>1, "b"=>2, "c"=>3}
h.transform_keys(&:to_s) # => {"a"=>1, "b"=>2, "c"=>3}
h.transform_keys.with_index {|k, i| "#{k}.#{i}" }
# => {"a.0"=>1, "b.1"=>2, "c.2"=>3}
//}

@see Hash#transform_keys!
@see Hash#transform_values
@see Hash#transform_values!...

Hash#transform_keys {|key| ... } -> Hash (18304.0)

すべてのキーに対してブロックを呼び出した結果で置き換えたハッシュを返します。 値は変化しません。

...# => {"a"=>1, "b"=>2, "c"=>3}
h.transform_keys(&:to_s) # => {"a"=>1, "b"=>2, "c"=>3}
h.transform_keys.with_index {|k, i| "#{k}.#{i}" }
# => {"a.0"=>1, "b.1"=>2, "c.2"=>3}
//}

@see Hash#transform_keys!
@see Hash#transform_values
@see Hash#transform_values!...

絞り込み条件を変える

Hash#transform_keys! -> Enumerator (18304.0)

すべてのキーに対してブロックを呼び出した結果でハッシュのキーを変更します。 値は変化しません。

...# => {"a"=>1, "b"=>2, "c"=>3}
h.transform_keys!(&:to_sym) # => {:a=>1, :b=>2, :c=>3}
h.transform_keys!.with_index {|k, i| "#{k}.#{i}" }
# => {"a.0"=>1, "b.1"=>2, "c.2"=>3}
//}

@see Hash#transform_keys
@see Hash#transform_values
@see Hash#transform_values!...

Hash#transform_keys! {|key| ... } -> self (18304.0)

すべてのキーに対してブロックを呼び出した結果でハッシュのキーを変更します。 値は変化しません。

...# => {"a"=>1, "b"=>2, "c"=>3}
h.transform_keys!(&:to_sym) # => {:a=>1, :b=>2, :c=>3}
h.transform_keys!.with_index {|k, i| "#{k}.#{i}" }
# => {"a.0"=>1, "b.1"=>2, "c.2"=>3}
//}

@see Hash#transform_keys
@see Hash#transform_values
@see Hash#transform_values!...

Hash.try_convert(obj) -> Hash | nil (18304.0)

to_hash メソッドを用いて obj をハッシュに変換しようとします。

...to_hash メソッドを用いて obj をハッシュに変換しようとします。

何らかの理由で変換できないときには nil を返します。
このメソッドは引数がハッシュであるかどうかを調べるために使えます。

//emlist[][ruby]{
Hash
.try_convert({...
...1=>2}) # => {1=>2}
Hash
.try_convert("1=>2") # => nil
//}...

Hash#include?(key) -> bool (9304.0)

ハッシュが key をキーとして持つ時真を返します。

...ハッシュが key をキーとして持つ時真を返します。

@param key 探索するキーを指定します。

//emlist[][ruby]{
p({1 => "one"}.key?(1)) # => true
p({1 => "one"}.key?(2)) # => false
//}

@see Hash#value?...

Hash#key(val) -> object (9304.0)

値 val に対応するキーを返します。対応する要素が存在しない時には nil を返します。

...素が存在しない時には
nil を返します。

該当するキーが複数存在する場合、どのキーを返すかは不定です。

Hash
#index は obsolete です。
使用すると警告メッセージが表示されます。

@param val 探索に用いる値を指定します。

//...
...emlist[例][ruby]{
h = {:ab => "some" , :cd => "all" , :ef => "all"}

p h.key("some") #=> :ab
p h.key("all") #=> :cd
p h.key("at") #=> nil
//}

@see Hash#invert...

絞り込み条件を変える

Hash#member?(key) -> bool (9304.0)

ハッシュが key をキーとして持つ時真を返します。

...ハッシュが key をキーとして持つ時真を返します。

@param key 探索するキーを指定します。

//emlist[][ruby]{
p({1 => "one"}.key?(1)) # => true
p({1 => "one"}.key?(2)) # => false
//}

@see Hash#value?...

Hash#[](key) -> object | nil (304.0)

key に関連づけられた値を返します。

...る必要が
ある場合は Hash#fetch または Hash#key? を使ってください。

@param key 探索するキーを指定します。

//emlist[例][ruby]{
h = {:ab => "some" , :cd => "all"}
p h[:ab] #=> "some"
p h[:ef] #=> nil

h1 = Hash.new("default value")
p h1[:non]...
...#=> "default value"

h2 = Hash.new {|*arg| arg}
p h2[:non] #=> [{}, :non]
//}

@see Hash.new, Hash#fetch,Hash#values_at,Hash#key?, Hash#default, Hash#default_proc...

Hash#[]=(key, value) (304.0)

key に対して value を関連づけます。value を返し ます。

...key に対して value を関連づけます。value を返し
ます。

@param key キーを指定します。
@param value 値を指定します。


//emlist[例][ruby]{
h = {}

h[:key] = "value"
p h #=>{:key => "value"}
//}

@see Hash#[]...

Hash#assoc(key) -> Array | nil (304.0)

ハッシュが key をキーとして持つとき、見つかった要素のキーと値のペア を配列として返します。

ハッシュが key をキーとして持つとき、見つかった要素のキーと値のペア
を配列として返します。

キーの同一性判定には eql? メソッドではなく == メソッドを使います。
key が見つからなかった場合は、nil を返します。

@param key 検索するキー

//emlist[例][ruby]{
h = {"colors" => ["red", "blue", "green"],
"letters" => ["a", "b", "c" ]}
h.assoc("letters") #=> ["letters", ["a", "b", "c"]]
h.assoc("f...

Hash#default(key) -> object | nil (304.0)

ハッシュのデフォルト値を返します。

...nil になることに注意してください。この場合、ハッシュのデフォルト値に
ついて調べるには 2 番目の形式か Hash#default_proc を使ってください。

2 番目の形式はハッシュがデフォルト値としてブロックを持つ場合に、
self と...
...emlist[例][ruby]{
h = Hash.new("default")
p h.default #=> "default"
p h.default(:some) #=> "default"
p h #=>{}

h = Hash.new{|hash, key| hash[key] ="default" }
p h.default #=> nil
p h.default(:some) #=> "default"
p h #=> {:some=>"default"}

h = Hash.new
p h.default...
...#=> nil
p h.default(:some) #=> nil
p h #=> {}
//}

@see Hash#default=, Hash#default_proc...

絞り込み条件を変える

Hash#delete(key) -> object | nil (304.0)

key に対応する要素を取り除きます。

...ッチする要素がなかった時に評価され、その結果を返します。

//emlist[例][ruby]{
h = {:ab => "some" , :cd => "all"}

p h.delete(:ab) #=> "some"
p h.delete(:ef) #=> nil
p h.delete(:ef){|key|"#{key} Nothing"} #=> "ef Nothing"

p h #=> {:cd=>"all"}
//}

@see Hash#delete_if...

Hash#delete(key) {|key| ... } -> object (304.0)

key に対応する要素を取り除きます。

...ッチする要素がなかった時に評価され、その結果を返します。

//emlist[例][ruby]{
h = {:ab => "some" , :cd => "all"}

p h.delete(:ab) #=> "some"
p h.delete(:ef) #=> nil
p h.delete(:ef){|key|"#{key} Nothing"} #=> "ef Nothing"

p h #=> {:cd=>"all"}
//}

@see Hash#delete_if...

Hash#delete_if {|key, value| ... } -> self (304.0)

キーと値を引数としてブロックを評価した結果が真であ るような要素を self から削除します。

...> "4", 8 => "2" }
p h #=> { 6 => "4", 8 => "2" }

p h.delete_if{|key, value| key.to_i < value.to_i } #=> { 6 => "4", 8 => "2" }
p h.reject!{|key, value| key.to_i < value.to_i } #=> nil
//}

@see Hash#reject,Hash#delete
@see Hash#keep_if,Hash#select!...

Hash#dig(key, ...) -> object | nil (304.0)

self 以下のネストしたオブジェクトを dig メソッドで再帰的に参照して返し ます。途中のオブジェクトが nil であった場合は nil を返します。

self 以下のネストしたオブジェクトを dig メソッドで再帰的に参照して返し
ます。途中のオブジェクトが nil であった場合は nil を返します。

@param key キーを任意個指定します。

//emlist[例][ruby]{
h = { foo: {bar: {baz: 1}}}

h.dig(:foo, :bar, :baz) # => 1
h.dig(:foo, :zot, :xyz) # => nil

g = { foo: [10, 11, 12] }
g.dig(:foo, 1) # => 11
//}

@see...

Hash#each {|key, value| ... } -> self (304.0)

ハッシュのキーと値を引数としてブロックを評価します。

...ch_pair は each のエイリアスです。

//emlist[例][ruby]{
{:a=>1, :b=>2}.each {|a| p a}
#=> [:a, 1]
# [:b, 2]

{:a=>1, :b=>2}.each {|k, v| p [k, v]}
#=> [:a, 1]
# [:b, 2]

p({:a=>1, :b=>2}.each_pair) # => #<Enumerator: {:a=>1, :b=>2}:each_pair>
//}

@see Hash#each_key,Hash#each_value...

絞り込み条件を変える

Hash#each_pair {|key, value| ... } -> self (304.0)

ハッシュのキーと値を引数としてブロックを評価します。

...ch_pair は each のエイリアスです。

//emlist[例][ruby]{
{:a=>1, :b=>2}.each {|a| p a}
#=> [:a, 1]
# [:b, 2]

{:a=>1, :b=>2}.each {|k, v| p [k, v]}
#=> [:a, 1]
# [:b, 2]

p({:a=>1, :b=>2}.each_pair) # => #<Enumerator: {:a=>1, :b=>2}:each_pair>
//}

@see Hash#each_key,Hash#each_value...

Hash#fetch(key) -> object (304.0)

key に関連づけられた値を返します。該当するキーが登録されてい ない時には、引数 default が与えられていればその値を、ブロッ クが与えられていればそのブロックを評価した値を返します。

...wo not exist"
"#{key} not exist" # warning: block supersedes default value argument
} # 警告が表示される。

h.default = "default"
p h.fetch(:two) # エラー key not found (KeyError)
//}

@see Hash#[]...

Hash#fetch(key) {|key| ... } -> object (304.0)

key に関連づけられた値を返します。該当するキーが登録されてい ない時には、引数 default が与えられていればその値を、ブロッ クが与えられていればそのブロックを評価した値を返します。

...wo not exist"
"#{key} not exist" # warning: block supersedes default value argument
} # 警告が表示される。

h.default = "default"
p h.fetch(:two) # エラー key not found (KeyError)
//}

@see Hash#[]...

Hash#fetch(key, default) -> object (304.0)

key に関連づけられた値を返します。該当するキーが登録されてい ない時には、引数 default が与えられていればその値を、ブロッ クが与えられていればそのブロックを評価した値を返します。

...wo not exist"
"#{key} not exist" # warning: block supersedes default value argument
} # 警告が表示される。

h.default = "default"
p h.fetch(:two) # エラー key not found (KeyError)
//}

@see Hash#[]...

Hash#fetch_values(key, ...) -> [object] (304.0)

引数で指定されたキーに関連づけられた値の配列を返します。

...=> "feline", "dog" => "canine", "cow" => "bovine" }

h.fetch_values("cow", "cat") # => ["bovine", "feline"]
h.fetch_values("cow", "bird") # raises KeyError
h.fetch_values("cow", "bird") { |k| k.upcase } # => ["bovine", "BIRD"]
//}

@see Hash#values_at, Hash#fetch...

絞り込み条件を変える

Hash#fetch_values(key, ...) { |key| ... } -> [object] (304.0)

引数で指定されたキーに関連づけられた値の配列を返します。

...=> "feline", "dog" => "canine", "cow" => "bovine" }

h.fetch_values("cow", "cat") # => ["bovine", "feline"]
h.fetch_values("cow", "bird") # raises KeyError
h.fetch_values("cow", "bird") { |k| k.upcase } # => ["bovine", "BIRD"]
//}

@see Hash#values_at, Hash#fetch...

Hash#flatten(level = 1) -> Array (304.0)

自身を平坦化した配列を生成して返します。

自身を平坦化した配列を生成して返します。

全てのキーと値を新しい配列の要素として展開します。
Array#flatten と違って、デフォルトではこのメソッドは自身を
再帰的に平坦化しません。level を指定すると指定されたレベルまで
再帰的に平坦化します。

@param level 展開するレベル

//emlist[例][ruby]{
a = {1=> "one", 2 => [2,"two"], 3 => "three"}
a.flatten #=> [1, "one", 2, [2, "two"], 3, "three"]
a.flatten(1) #=> [1, ...

Hash#keep_if {|key, value| ... } -> self (304.0)

キーと値を引数としてブロックを評価した結果が真であるような要素を self に残します。

...}:select!>

h1.select! { |k, v| k % 3 == 0 } # => {0=>"a", 3=>"d", 6=>"g"}
h1.select! { |k, v| true } # => nil
h2.keep_if { |k, v| k % 3 == 0 } # => {0=>"a", 3=>"d", 6=>"g"}
h2.keep_if { |k, v| true } # => {0=>"a", 3=>"d", 6=>"g"}
//}

@see Hash#select, Hash#delete_if, Hash#reject!...

Hash#merge!(other) {|key, self_val, other_val| ... } -> self (304.0)

selfとotherのハッシュの内容をマージ(統合)します。

...の値を使います。

otherがハッシュではない場合、otherのメソッドto_hashを使って暗黙の変換を試みます。

@param other マージ用のハッシュまたはメソッド to_hash でハッシュに変換できるオブジェクトです。
@return マージ後のself...
...'B', 3 => 'C', 4 => 'D'}

p foo.update(bar) #=> {1=>"a", 2=>"B", 3=>"C", 4=>"D"}
p foo #=> {1=>"a", 2=>"B", 3=>"C", 4=>"D"}

p foo.update(bar) {|key, foo_val, bar_val| foo_val + bar_val } # => {1=>"a", 2=>"BB", 3=>"CC", 4=>"DD"}
p foo # => {1=>"a", 2=>"BB", 3=>"CC", 4=>"DD"}
//}

@see Hash#merge!...

Hash#merge(other) {|key, self_val, other_val| ... } -> Hash (304.0)

selfとotherのハッシュの内容をマージ(統合)した結果を返します。デフォルト値はselfの設定のままです。

...の値を使います。

otherがハッシュではない場合、otherのメソッドto_hashを使って暗黙の変換を試みます。

@param other マージ用のハッシュまたはメソッド to_hash でハッシュに変換できるオブジェクトです。
@return マージした結...
...to_hash
{:Australia => 'Sydney',
:France => 'Paris'
}
end
end

h = {:Germany => 'Berlin',
:Australia => 'Canberra',
:France => 'Paris'
}

# 暗黙の変換
p h.merge(Foo.new) # => {:Germany=>"Berlin", :Australia=>"Sydney", :France=>"Paris"}
//}

@see Hash#update,Hash#r...

絞り込み条件を変える

Hash#rassoc(value) -> Array | nil (304.0)

ハッシュ内を検索して,引数 value と 一致する値を探します。

...とするサイズ 2 の配列を返します。
ない場合には nil を返します。

@param value 探索する値。

//emlist[例][ruby]{
a = {1=> "one", 2 => "two", 3 => "three", "ii" => "two"}
a.rassoc("two") #=> [2, "two"]
a.rassoc("four") #=> nil
//}

@see Hash#assoc, Array#rassoc...

Hash#reject {|key, value| ... } -> Hash (304.0)

self を複製して、ブロックを評価した値が真になる要 素を削除したハッシュを返します。

...す。
selfを破壊的に変更したい場合はかわりにHash#delete_ifかHash#reject!を使います。

//emlist[例][ruby]{
h = { 2 =>"8" ,4 =>"6" ,6 =>"4" ,8 =>"2" }

p h.reject{|key, value| key.to_i < value.to_i} #=> {6=>"4", 8=>"2"}
//}

@see Hash#delete_if,Hash#delete,Enumerable#reject...

Hash#reject! {|key, value| ... } -> self|nil (304.0)

キーと値を引数としてブロックを評価した結果が真であ るような要素を self から削除します。

...> "4", 8 => "2" }
p h #=> { 6 => "4", 8 => "2" }

p h.delete_if{|key, value| key.to_i < value.to_i } #=> { 6 => "4", 8 => "2" }
p h.reject!{|key, value| key.to_i < value.to_i } #=> nil
//}

@see Hash#reject,Hash#delete
@see Hash#keep_if,Hash#select!...

Hash#select {|key, value| ... } -> Hash (304.0)

key, value のペアについてブロックを評価し,真となるペアだけを含む ハッシュを生成して返します。

...った場合は、自身と select から生成した
Enumerator オブジェクトを返します。

//emlist[][ruby]{
h = { "a" => 100, "b" => 200, "c" => 300 }
h.select {|k,v| k > "a"} #=> {"b" => 200, "c" => 300}
h.select {|k,v| v < 200} #=> {"a" => 100}
//}


@see Hash#select!, Hash#reject...

Hash#select! {|key, value| ... } -> self | nil (304.0)

キーと値を引数としてブロックを評価した結果が真であるような要素を self に残します。

...}:select!>

h1.select! { |k, v| k % 3 == 0 } # => {0=>"a", 3=>"d", 6=>"g"}
h1.select! { |k, v| true } # => nil
h2.keep_if { |k, v| k % 3 == 0 } # => {0=>"a", 3=>"d", 6=>"g"}
h2.keep_if { |k, v| true } # => {0=>"a", 3=>"d", 6=>"g"}
//}

@see Hash#select, Hash#delete_if, Hash#reject!...

絞り込み条件を変える

Hash#slice(*keys) -> Hash (304.0)

引数で指定されたキーとその値だけを含む Hash を返します。

...引数で指定されたキーとその値だけを含む Hash を返します。

//emlist[例][ruby]{
h = { a: 100, b: 200, c: 300 }
h.slice(:a) # => {:a=>100}
h.slice(:c, :b) # => {:c=>300, :b=>200}
h.slice(:b, :c, :d) # => {:b=>200, :c=>300}
//}

@see ENV.slice...

Hash#store(key, value) -> object (304.0)

key に対して value を関連づけます。value を返し ます。

...key に対して value を関連づけます。value を返し
ます。

@param key キーを指定します。
@param value 値を指定します。


//emlist[例][ruby]{
h = {}

h[:key] = "value"
p h #=>{:key => "value"}
//}

@see Hash#[]...

Hash#to_a -> [Array] (304.0)

キーと値からなる 2 要素の配列を並べた配列を生成して返します。

...キーと値からなる 2 要素の配列を並べた配列を生成して返します。

//emlist[例][ruby]{
h1 = { "a" => 100, 2 => ["some"], :c => "c" }
p h1.to_a #=> c, "c"
//}

@see Hash#keys,Hash#values...

Hash#update(other) {|key, self_val, other_val| ... } -> self (304.0)

selfとotherのハッシュの内容をマージ(統合)します。

...の値を使います。

otherがハッシュではない場合、otherのメソッドto_hashを使って暗黙の変換を試みます。

@param other マージ用のハッシュまたはメソッド to_hash でハッシュに変換できるオブジェクトです。
@return マージ後のself...
...'B', 3 => 'C', 4 => 'D'}

p foo.update(bar) #=> {1=>"a", 2=>"B", 3=>"C", 4=>"D"}
p foo #=> {1=>"a", 2=>"B", 3=>"C", 4=>"D"}

p foo.update(bar) {|key, foo_val, bar_val| foo_val + bar_val } # => {1=>"a", 2=>"BB", 3=>"CC", 4=>"DD"}
p foo # => {1=>"a", 2=>"BB", 3=>"CC", 4=>"DD"}
//}

@see Hash#merge!...

Hash#values_at(*keys) -> [object] (304.0)

引数で指定されたキーに対応する値の配列を返します。

...引数が指定されなかった場合は、空の配列を返します。

//emlist[例][ruby]{
h = {1=>"a", 2=>"b", 3=>"c"}

p h.values_at(1,3,4) #=> ["a", "c", nil]
# [h[1], h[3] ,h[4]] と同じ
//}

@see Hash#[] , Hash.new, Hash#default, Hash#default_proc, Array#values_at...

絞り込み条件を変える

Hash.[](*key_and_value) -> Hash (304.0)

新しいハッシュを生成します。 引数は必ず偶数個指定しなければなりません。奇数番目がキー、偶数番目が値になります。

...値になります。

このメソッドでは生成するハッシュにデフォルト値を指定することはできません。
Hash
.newを使うか、Hash#default=で後から指定してください。

@param key_and_value 生成するハッシュのキーと値の組です。必ず偶数...
...][ruby]{
ary = [1,"a", 2,"b", 3,["c"]]
p Hash[*ary] # => {1=>"a", 2=>"b", 3=>["c"]}
//}

(2) キーと値のペアの配列からハッシュへ

//emlist[][ruby]{
alist = [[1,"a"], [2,"b"], [3,["c"]]]
p alist.flatten(1) # => [1, "a", 2, "b", 3, ["c"]]
p Hash[*alist.flatten(1)] # => {1=>"a", 2=>"b...
...ls].transpose
p alist # => [[1, "a"], [2, "b"], [3, ["c"]]]
p Hash[alist] # => {1=>"a", 2=>"b", 3=>["c"]}
//}

(4) キーや値が配列の場合

//emlist[][ruby]{
alist = [[1,["a"]], [2,["b"]], [3,["c"]], [[4,5], ["a", "b"]]]
hash
= Hash[alist] # => {1=>["a"], 2=>["b"], 3=>["c"], [4, 5]=>["a", "b...

Hash.new {|hash, key| ... } -> Hash (304.0)

空の新しいハッシュを生成します。ブロックの評価結果がデフォルト値になりま す。設定したデフォルト値はHash#default_procで参照できます。

...空の新しいハッシュを生成します。ブロックの評価結果がデフォルト値になりま
す。設定したデフォルト値はHash#default_procで参照できます。

値が設定されていないハッシュ要素を参照するとその都度ブロックを
実行し、そ...
...ォルト値は全部同一のオブジェクトなので、
# 破壊的変更によって他のキーに対応する値も変更されます。
h = Hash.new("foo")

p h[1] #=> "foo"
p h[1].object_id #=> 6127170
p h[1] << "bar" #=> "foobar"
p h[1] #=>...
...まだ無いキーが呼び出される度に
# ブロックを評価するので、全て別のオブジェクトになります。
h = Hash.new {|hash, key| hash[key] = "foo"}

p h[1] #=> "foo"
p h[1].object_id #=> 6126900
p h[1] << "bar" #=> "foobar"
p h[1]...