MacでRuby入門 ~文字列の連結と追加~
文字列の連結と追加の違いについて勉強しましょう。
文字列を連結するときには、「+メソッド」を使います。
では、実践してみます。
puts "Hello " + "World"
実行結果は
Hello World
になります。
続いて、変数に代入して文字列を表示してみます。
h = "Hello "
w = "World"
puts h + w
puts h
puts w
実行結果は
Hello World
Hello
World
になります。
「+メソッド」で文字列を連結したときは、どちらかの文字列が連結した文字列に変わるのではなく、連結のたびに新しい文字列が作成されます。
一方、文字列を追加するときは、「concatメソッド」もしくは「<<メソッド」を使います。
実践してみます。
puts "Hello ".concat("World") puts "こん" << "にちは"
実行結果は
Hello World こんにちは
ふむ。「+メソッド」と見た目同じに見えます。
では、変数に代入して文字列を表示してみます。
h = "Hello " w = "World" puts h << w puts h puts w
実行結果は、
Hello World Hello World World
あれ、変数hの中身が変わりましたね。
「+メソッド」は元の変数の中身を変更せずに、連結のたびに新しい文字列を作成する 「<< メソッド」は、連結元の文字列が変更されます
要するに、連結(+メソッド)と追加(concatメソッドもしくは<<メソッド)の違いは、元の文字列が変更されるかそうでないかの違いです。