0

このチュートリアルから、Rubyで参照がどのように機能するかを学ぶことができました。

1.9.3-p194 :007 > person1 = "Tim"
 => "Tim" 
1.9.3-p194 :008 > person1.class
 => String 
1.9.3-p194 :009 > person1.object_id
 => 73847870 
1.9.3-p194 :010 > person2 = person1
 => "Tim" 
1.9.3-p194 :011 > person2.class
 => String 
1.9.3-p194 :012 > person2.object_id
 => 73847870 
1.9.3-p194 :013 > person1[0] = "J"
 => "J" 
1.9.3-p194 :014 > person1
 => "Jim" 
1.9.3-p194 :015 > person2
 => "Jim" 
1.9.3-p194 :016 > person3 = person2.dup
 => "Jim" 
1.9.3-p194 :017 > person3.object_id
 => 75146000 
1.9.3-p194 :018 > person2 = "John"
 => "John" 
1.9.3-p194 :019 > person1
 => "Jim" 
1.9.3-p194 :020 > person1.object_id
 => 73847870 
1.9.3-p194 :021 > person2.object_id
 => 75134230 

IRBで別の文字列を運ぶようにperson2を割り当てようとすると、別のオブジェクトに変更されました。これはRubyの動作に関しては正常ですか?

4

1 に答える 1

4

person1person2およびperson3オブジェクトではありません—変数です。文字列自体はオブジェクトです。変数は、オブジェクトを参照する単なる名前です。したがって、別のオブジェクト(この場合は文字列)を変数に割り当てると、はい、変数は別のオブジェクトを参照します。

于 2012-05-15T06:16:10.583 に答える