restofwaterimpのぎじゅつMemo

SIerに所属。企画から運用まで幅広くやってます。C#中心に書いてます。

【メモ】値渡し?参照渡し?

確か、rubyって値渡しだよな〜〜と。

 

入門Rubyには参照渡しっぽく以下のソースの説明が書いてあったので、「?」に。

 

#! ruby -Ks

#-*- coding:UTF-8 -*-

str1 = "Hello"

str2 = "WaWoo"

str3 = str1

puts str1;

puts str2;

puts str3;

str1 = ""

puts str1;

 

puts str3;

 

結果・・・

Hello

WaWoo

Hello

 

 

Hello

 

まあ、当然なのですが、str1とstr3が同じ参照先を見ているという感じに書いてあったんですね。。。

でも、そうならば、str1=""をした時に、str3も""になるような。

str1=""としたときに異なるアドレス空間に置かえるのか??

 

んなわけないような・・と以下のサイトでやっぱり値渡し(というかcallしてないから・・)というのを

値渡しと参照渡しの違いを理解する

http://magazine.rubyist.net/?0032-CallByValueAndCallByReference