2008年12月01日

なさそうで、ある?

Rubyって、なんとなくデータ型を意識しないようなイメージですが、実際にはしっかりとあるんですね。こんな感じに、

i = 1 #iには数値型のインスタンスが設定

if i == 1 #「1」は数値型のインスタンスなので、これは同値
  puts "同じです。"
end

i = "1" #iには文字列型のインスタンスが設定

if i != 1 #「1」は数値型のインスタンスなので、これは比較が正しく行われない。
  puts "違います"
end

要は動的データ型定義ということですですが、データ型の違いを吸収してはくれないのですよね。

これって、自分が作っていないメソッドから渡されてきた変数を対象に処理を書く場合に、ちょっと面倒ですよね(例えば変数に値「1」が入っているとして、それが数値型オブジェクトなのか、文字列型オブジェクトなのかは、すぐには分からないですから)。
posted by 台北猫々 at 22:04| Comment(0) | TrackBack(0) | 技術メモ(Ruby)