Почему в Ruby Array.new (size, object) создает массив, состоящий из нескольких ссылок на один и тот же объект ?

Как упоминалось в этот ответ , Array.new (size, object) создает массив с ] size ссылается на тот же объект .

hash = Hash.new
a = Array.new(2, hash)
a[0]['cat'] = 'feline'
a # => [{"cat"=>"feline"},{"cat"=>"feline"}]
a[1]['cat'] = 'Felix'
a # => [{"cat"=>"Felix"},{"cat"=>"Felix"}]

Почему Ruby делает это, а не выполняет dup или клон объекта ?

5
задан Community 23 May 2017 в 12:22
поделиться