中級 › gsub! は置換が発生しないと nil を返す(gsub との違い) › パターン5
gsub! は置換が発生しないと nil を返す(gsub との違い)
破壊的メソッドのgsub!やsub!は、置換対象が見つかって実際に変更が起きた場合は変更後の文字列を、何も置換されなかった場合はnilを返します。
1 title = "draft" 2 result = title._____("q", "w") ^ 3 puts result.upcase
main.rb:3:in `<main>': undefined method `upcase' for nil (NoMethodError)
空欄を埋めて実行を通す
メソッドチェーンでgsub!をつなげる場合、置換が起きなかった経路でnilが混ざる危険を考える必要があります。
次の問題