これは10 Things Every Java Programmer Should Know About Rubyトークのスライド6にあります。Rubyでは、変数名はオブジェクトではありません。どうして?
ここで私はいくつかの答えを見直しました。一般的なコンセンサスは、単なるポインタではなく、価値のあるものはすべてオブジェクトであるということです。私はこれで混乱しています。 a = 1
の場合、a
は1
とメソッドを共有し、実際にはobject_id
と同じになります。どのように "aはオブジェクトである"と言うのは正確ではないのですか?
スライドは「a」がオブジェクトではないと言っているわけではありません。 * name *はオブジェクトではありません。表示すると、その名前はオブジェクトを参照します。 –
微妙だが重要な区別。ありがとう。 –
*非常に厳密に言えば、変数名*は*オブジェクトであると主張できます。具体的には、「シンボル」です。 *変数*はオブジェクトではありません。 (メソッドでもBTWでも*メソッドを表す*プロキシオブジェクトを取得できますが、メソッド自体は取得できません) –