中級 › gsub! は置換が発生しないと nil を返す(gsub との違い) › パターン1
gsub! は置換が発生しないと nil を返す(gsub との違い)
破壊的メソッドのgsub!やsub!は、置換対象が見つかって実際に変更が起きた場合は変更後の文字列を、何も置換されなかった場合はnilを返します。
1 text = "hello" 2 result = text._____("x", "y") ^ 3 puts result.upcase
main.rb:3:in `<main>': undefined method `upcase' for nil (NoMethodError)
空欄を埋めて実行を通す
gsub!は置換が1件も発生しないとnilを返します。置換が起きるとは限らない入力にはgsub!の戻り値をそのまま使うのは危険です。
次の問題