- 파이썬


a = [0, 1, 2, 3]

b = a

a[0] = 9

print(b) # [9, 1, 2, 3]


a = [0, 1, 2, 3]

b = a[:]

a[0] = 9

print(b) # [0, 1, 2, 3]


리스트를 그대로 다른 리스트에 할당하면 서로 동일한 주소의 데이터를 참조하게 되서 하나가 변하면 나머지도 변함

리스트의 서브리스트를 다른 리스트에 할당하면 서로 독립적이 됨(아마도 서브리스트는 원래 리스트의 값을 다른 곳에 복사해놓나봄)


- Go


a := []int{0, 1, 2, 3}

b := a

a[0] = 9

fmt.Println(b) // [9 1 2 3]


a := []int{0, 1, 2, 3}

b := a[:]

a[0] = 9

fmt.Println(b) // [9 1 2 3]


서브슬라이스도 본래의 슬라이스와 동일한 주소의 데이터를 참조

슬라이스를 그대로 할당하든 서브슬라이스로 할당하든 마찬가지.




다른 언어는 보통 어떤지 가르쳐 주세용.