[Ruby]ハッシュ(Hash)のシンボルを文字列に変換するには?

Ruby

どうも、ちょげ(@chogetarou)です。

ハッシュ(Hash)のキー(Key)のシンボルを文字列(string)に変換する方法を紹介します。

スポンサーリンク

方法

ハッシュ(Hash)のキー(Key)のシンボルを文字列(string)に変換するには、Hash#transform_keysメソッドを使います。

まず、ハッシュからtransform_keysメソッドを呼び出します。

そして、transform_keysメソッドの引数に「&:to_s」を指定します。

#h=対象のハッシュ
result = h.transform_keys(&:to_s)

上記のtransform_keysメソッドは、ハッシュ(Hash)のキーのシンボルを全て文字列に変換した結果を返します。
(呼び出したハッシュには影響を与えません)

もし、呼び出したハッシュに影響を与えたい場合は、transform_keysメソッドの代わりにtransform_keys!メソッドを呼び出します。

#呼び出したハッシュに影響を与える
h.transform_keys!(&:to_s)

使用例

nums = { 
    :one => 1, 
    :two => 2,
    :three => 3,
    :four => 4,
    :five => 5,
}

result = nums.transform_keys(&:to_s)

p result
出力:
{"one"=>1, "two"=>2, "three"=>3, "four"=>4, "five"=>5}

使用例2

nums = { 
    :one => 1, 
    :two => 2,
    :three => 3,
    :four => 4,
    :five => 5,
}

nums.transform_keys!(&:to_s)

p nums
出力:
{"one"=>1, "two"=>2, "three"=>3, "four"=>4, "five"=>5}

コメント

タイトルとURLをコピーしました