swift
에서의 컬렉션은 struct
이다. 때문에 다음의 코드에서var array1 : [Int] = [1,2,3,4]
var array2 : [Int] = array1
을 한다면 원래는 값복사
가 일어나야 한다.
메모리 상에서
array1 -------------> [1,2,3,4]
array2 -------------> [1,2,3,4]
이렇게 존재해야하지만
우리가 array2 = array1을 했을 때 array2의 내용을 바꾸지 않는다면
array1 -------------> [1,2,3,4]
<------------- array2
array2
는 array1의 메모리 공간을 참조하게 된다.
그리고 나서 array2
에다가 5를 추가하게 되면 그제서야
array1 -------------> [1,2,3,4]
array2 -------------> [1,2,3,4,5]
과 된다.