Rubyは変数の型を宣言しない。

Rubyのコードを書いていて思ったのですが、この言語では変数の型を宣言しないようです。
大学時代にC言語を学んだ時には必ず変数の型の宣言から入っていましたが、これが無いのです。

例えばこんなの。

int A;

シェルスクリプトでもそうですが、これは仕様であり、投入された内容の型を自動で判別しているようです。
スクリプト言語だと、PerlにしろPHPにしろ、だいたいこんな仕様みたいですね。

さて、Rubyでは全てのデータは何らかのインスタンスとして扱われるようです。
つまり、数値型、文字列型という「型」ではなく、数値クラスのインスタンス、文字列クラスのインスタンスということになるとのことです。
変数に格納されたデータがどのクラスに所属するのかを調べるメソッドがあったので、やってみました。

変数を宣言したあと、

変数.class

とするだけです。

  • 数値(Fixnumクラス)
irb(main):001:0> a = 1
=> 1
irb(main):002:0> a.class
=> Fixnum
  • 数値(Bignumクラス)
irb(main):003:0> b = (10000000000000000 * 10000000000000000000)
=> 100000000000000000000000000000000000
irb(main):004:0> b.class
=> Bignum
  • 文字列(String クラス)
irb(main):005:0* c = "Ruby"
=> "Ruby"
irb(main):006:0> c.class
=> String

上記の変数aに格納した1はFixnumクラス、変数bに格納した100000000000000000000000000000000000はBignumクラス、変数cに格納した"Ruby"はStringクラスといった感じです。