From: fjqqiqi@163.com Date: 2016-09-15T17:23:01+00:00 Subject: [ruby-core:77288] [Ruby trunk Bug#12765] An [element] multiply an number, every element in the list would be modified after modifying only one of then. Issue #12765 has been updated by jieqi fan. ` element = [1] list = Array.new(3) { element } p list #[[1], [1], [1]] list[0][0] = -1 # should be [[-1], [1], [1]] p list # [[-1], [-1], [-1]] ` OK, and could you please figure out this one? ---------------------------------------- Bug #12765: An [element] multiply an number, every element in the list would be modified after modifying only one of then. https://bugs.ruby-lang.org/issues/12765#change-60521 * Author: jieqi fan * Status: Open * Priority: Normal * Assignee: * ruby -v: ruby 2.3.1p112 (2016-04-26 revision 54768) [x86_64-darwin14] * Backport: 2.1: UNKNOWN, 2.2: UNKNOWN, 2.3: UNKNOWN ---------------------------------------- ` element = [1] list = [element.clone] * 3 p list #[[1], [1], [1]] list[0][0] = -1 # should be [[-1], [1], [1]] p list # [[-1], [-1], [-1]] ` The list initialized as [ [1], [1] ]. Then we assign the list[0][0], which is 1, as -1, and the list[1][0] is changed as -1 too. -- https://bugs.ruby-lang.org/ Unsubscribe: