中級 › gsub! は置換が発生しないと nil を返す(gsub との違い) › パターン3
gsub! は置換が発生しないと nil を返す(gsub との違い)
破壊的メソッドのgsub!やsub!は、置換対象が見つかって実際に変更が起きた場合は変更後の文字列を、何も置換されなかった場合はnilを返します。
1 line = "sample" 2 result = line._____("!", "?") ^ 3 puts result.reverse
main.rb:3:in `<main>': undefined method `reverse' for nil (NoMethodError)
空欄を埋めて実行を通す
常に文字列を返してほしいだけなら、破壊的でないgsubを使うのが安全です。
次の問題