0
var 배열이 있습니다.한 변수를 다른 변수에 복사하고 서로 독립적으로 만드는 방법
arrays = [[15, 2, 3], [9, 1, 2], [5, 3, 0]]
새 var 정렬로 복사하십시오. 예상 결과는 내가 var에 나는 또한
arrays = [[15, 2, 3], [9, 1, 2], [5, 3, 0]]
sorted_dup = arrays.dup
sorted_dup.each do |i|
i.sort!
end
p arrays
p sorted_dup
을 시도했습니다 VAR 배열을
sorted_clone = arrays.clone
sorted_clone.each do |i|
i.sort!
end
p arrays
p sorted_clone
을 변경하지 않고 분류 정렬 할 수 없습니다
[[15, 2, 3], [9, 1, 2], [5, 3, 0]]
[[2, 3, 15], [1, 2, 9], [0, 3, 5]]
입니다
모두 결과는 동일
입니다[[2, 3, 15], [1, 2, 9], [0, 3, 5]]
[[2, 3, 15], [1, 2, 9], [0, 3, 5]]
사용'지도'아마도 새로운 과제. –
개체 obj0의 "딥 복사"obj1은 "obj1"을 변경해도 obj0이 변경되지 않는다는 속성을 가지고 있습니다. @ Jokester의 답변에서 알 수 있듯이 배열 배열의 전체 복사본을 만드는 것은 매우 간단합니다. 그러나 때로는 배열과 해시의 다중 레벨 중첩과 같은 복잡한 객체'obj0'의 전체 사본을 만들어야합니다. 대부분의 객체에 대해이를 수행하는 한 가지 방법은 [Marshal] (https://ruby-doc.org/core-2.4.0/Marshal.html) 모듈의 메소드를 사용하는 것입니다. obj1 = Marshal.load (Marshal .dump (obj0))'. –