Ruby - 基本的な文法 - 本当にすべてオブジェクト

クラウディア 
1. 本当にすべてオブジェクト
2. ハッシュの値にハッシュを設定

1. 本当にすべてオブジェクト

 前の方で、スカラ変数的なという言葉を使っていますが、ruby では、変数はすべてオブジェクトということで、変数スコープはあっても型はないのだ。  つまり、下記のソースを書いて

#!/usr/bin/env ruby

value = 1
puts("#{value}")

value = Array[ 1, 2 ]
puts("#{value}")

value = Hash[ :foo => 1, :bar => 2 ]
puts("#{value}")
 実行すると以下のようになります。

1
[1, 2]
{:foo=>1, :bar=>2}

2. ハッシュの値にハッシュを設定

 ハッシュの値にハッシュを設定することもできます。  下記のソースを書いて

#!/usr/bin/env ruby

hash = { :foo => 'bar', :hoge => 'fuga' }
hash2 = { :hash => hash }

hash2.each { | key, value |
    puts("key = #{key}  value = #{value}")
}
 実行すると以下のようになります。

key = hash  value = {:foo=>"bar", :hoge=>"fuga"}
 うむ、便利。  さすがに「perl」ではこれは簡単にはできないからな。