>> a = 5
=> 5
>> b = "hello, world!"
=> "hello, world!"
>> b.dup
=> "hello, world!"
>> a.dup
TypeError: can't dup Fixnum
from (irb):4:in `dup'
from (irb):4
整数を新しい変数に代入するたびにRubyがコピーを作成することは理解していますが、なぜNumeric#dup
エラーが発生するのですか?
すべてのオブジェクトが適切に応答する必要があるため、これは抽象化を壊しません.dup
か?
dup
私が知る限り、メソッドを書き直すと問題が解決します。
>> class Numeric
>> def dup()
>> self
>> end
>> end
これには、私が見ていない欠点がありますか? これがRubyに組み込まれていないのはなぜですか?