は、次のコードを考えてみましょう:Rubyの文字列は変更可能ですか?
$ irb
> s = "asd"
> s.object_id # prints 2171223360
> s[0] = ?z # s is now "zsd"
> s.object_id # prints 2171223360 (same as before)
> s += "hello" # s is now "zsdhello"
> s.object_id # prints 2171224560 (now it's different)
を個々の文字が新しい文字列を作成するoをワット/変更することができるように思えます。ただし、文字列に追加すると、明らかに新しい文字列が作成されます。
Rubyの文字列は可変ですか? Ruby Stringに追加は
ありがとうございました。 http://stackoverflow.com/questions/2608493/why-did-matz-choose-to-make-strings-mutable-by-default-in-ruby –
@DaveNewton:それはいかに簡単かあなたがGoogle上で最初に起こっているSOの話題にはほとんど期待できるので、あなたの上でdupsを見つけるには? –
'+'は連結しており、新しい文字列を返します。 '<<'はAppendingであり、指定された文字列オブジェクトに追加されます(新しいものを作成しません)。 – Chad