728x90 반응형 golang copy slice1 golang slice elements copy (copy(), append(), for ... range) golang에서 slice는 특정 배열의 위치를 가르키는 pointer를 가지는 reference 타입의 구조체이다. 그렇기 때문에 대입 연산자 ('=') 를 사용하여 Copy를 하면 값(Elements) 가 Copy가 되는 것이 아니라 reference type의 구조체가 Copy되는 것이다. 즉, 아래 그림과 같이 SliceA를 대입 연산자를 통해 SliceB에 복사한 경우 같은 배열을 가르키는 pointer를 가지는 reference type의 구조체가 만들어져, SliceA에서 배열의 값을 변경하는 경우 SliceB 도 같은 배열을 가르키고 있기 때문에 SliceB 가르키는 값 역시 변경되는 것이다. 이 경우 의도하였다면 큰 문제가 되지 않겠지만, 대부분 이런 경우는 논리적 오류를 일으킬 가.. 2024. 1. 14. 이전 1 다음 728x90 반응형