別のオブジェクトを代入
変数はオブジェクトに付ける名前のようなものです。オブジェクトを代入することで変数が指し示しているオブジェクトが決まりますが一度オブジェクトを代入した後で別のオブジェクトを再度代入することも可能です。
num = 10 print(num) num = 12 print(num)
別のオブジェクトを代入するということは、変数を別のオブジェクトの名札に変更したということになります。上記の場合は最初の「print」メソッドでは「10」が出力されますが、次の「print」メソッドでは変数に別のオブジェクトを代入していますので「12」が出力されます。
またオブジェクトは元になっているクラスが決まっていますが、変数はオブジェクトに付けられた名札でしかないため変数自体には型のようなものは存在しません。その為、一度代入が行われた変数に対して、まったく違うクラスから作成されたオブジェクトを代入することも可能です。
次の例ではまず数値オブジェクトが変数に代入されていますが、その後で文字列オブジェクトが同じ変数に代入されています。
val = 10 print(val) val = "こんにちは" print(val)
ただし文法的には問題はありませんが、同じ変数に色々なオブジェクトを代入していると今現在どのようなオブジェクトが格納されているか分からなくなってしまいケアレスミスの元となりますので注意して下さい。
サンプルプログラム
では簡単なプログラムで確認して見ます。
#! ruby -Ku require "kconv" val = 10 print(val, "¥n") val = "こんにちは" print(Kconv.tosjis(val + "¥n"))
上記のプログラムを「test3-1.rb」として保存します。文字コードはUTF-8です。そして下記のように実行して下さい。
( Written by Tatsuo Ikura )