まつもと ゆきひろです.
ちょっと勘違いしていたかもしれません.
In message "[ruby-list:856] Re: documents 0.99.2 available"
on 96/10/17, Shin-ichiro Hara <sinara / blade.nagaokaut.ac.jp> writes:
|
|原です。
|> f = "string"
|> print f, sub("str", "ski"), f
|> => string, skiing, string
|> print f, sub!("str", "ski"), f
|> => skiing, skiing, skiing
|
|で、sub, sub! の前に f. が抜けています。最後の行は
|string,.. ですね。
f.が抜けているのは確かなんですけど,「最後の行は…」というの
はsub!の行の出力が
=> string, skiing, skiing
であるべきだという意味なんですかね.実際やってみれば分かると
思うのですが,これの出力は
=> skiing, skiing, skiing
であってます.sub!は元の文字列を直接変更してしまうために引数
評価の段階でfの値が"skiing"になってしまうからです.rubyの場
合は文字列を引数に渡しても渡るのは文字列オブジェクトへの参照
だけで,コピーは行われません.
まつもと ゆきひろ /:|)