Ruby_Array_48

この記事は、以下のドキュメントを改変(自分なりに整理)して利用しています。

class Array (Ruby 3.1 リファレンスマニュアル)

インスタンスメソッド

replace(another) -> self
  • 配列の内容を配列anotherの内容で置き換える
  • 配列以外の(暗黙の型変換が行えない)オブジェクトを指定した場合、TypeErrorが発生する
irb(main):001:0> arr = ['a', 1]
=> ["a", 1]

irb(main):002:0> brr = ['b', 2]
=> ["b", 2]

irb(main):003:0> arr.replace(brr)
=> ["b", 2]

irb(main):004:0> arr
=> ["b", 2]

irb(main):005:0> brr[0].capitalize!
=> "B"

irb(main):006:0> brr << 'c'
=> ["B", 2, "c"]

irb(main):007:0> arr
=> ["B", 2]
irb(main):001:0> [].replace('a')
Traceback (most recent call last):
        5: from /Users/mfham/.rbenv/versions/3.0.0/bin/irb:23:in `<main>'
        4: from /Users/mfham/.rbenv/versions/3.0.0/bin/irb:23:in `load'
        3: from /Users/mfham/.rbenv/versions/3.0.0/lib/ruby/gems/3.0.0/gems/irb-1.3.0/exe/irb:11:in `<top (required)>'
        2: from (irb):1:in `<main>'
        1: from (irb):1:in `replace'
TypeError (no implicit conversion of String into Array)