プログラミング言語や環境設定を中心としたパソコン関連の技術メモです。
主にシステム開発中に調べたことをメモしています。TIPS的な位置付けで、気が向いたときにちまちま更新していきます。
Ruby、変数へ代入する際の注意点
んが、これ覚えておかんとバグるな。
と言う訳でメモメモφ(。。;)

Rubyにおける変数への代入は値のコピーではなく
オブジェクトへの参照設定なのだそーです。
例えば

a = "abc"

って代入した場合、
厳密には「変数aのオブジェクト」へ「文字列"abc"」が代入されるのではなく
「変数aのオブジェクト」へ「『文字列"abc"のオブジェクト』への参照」が
代入されるのだそうです。
要は全部ポインタってことですね。

つまり変数を初期化するときに横着して

c = d = "hoge"

とか書いちゃうとバグる可能性があるわけです(--)b

こんなコードを書くとφ(--)

  c = d = "hoge"
  
  puts c
  puts d
  
  c<<"aa"
  
  puts c
  puts d


こんな結果になりますよφ(--;)

hoge
hoge
hogeaa
hogeaa
(←変数dの値も変わってる)


これ、横着しなければ滅多にハマらんだろうけど
一度ハマったら原因箇所特定すんの面倒そうだなぁ(--;
スポンサーリンク
 
このエントリーをはてなブックマークに追加 

category:● Ruby  thema:パソコンな日々 - genre:コンピュータ  Posted by ササキマコト 

  関連記事