
164
러닝 Go
Go
에서 포인터 변수나 파라미터를 사용할 때, 똑같은 수행을 보인다.
Go
와 이런 언어들 간에
차이는 원시 값과 구조체 모두를 위해 값으로 사용할지 포인터로 사용할지에 대한
선택
을 제공
한다. 대부분의 경우에는 값으로 사용하자. 값으로 사용하는 것은 데이터가 언제 어떻게 수정
되는지 이해하기 쉬워진다. 값으로 사용하는 또 다른 이득은 가비지 컬렉션이 해야 하는 일의
양을 줄여준다. 이것은
6
.
9
절 ‘가비지 컬렉션 작업량 줄이기’에서 다루어 보자.
6.3
포인터는 변경 가능한 파라미터를 가리킨다
이미 봤듯이
Go
상수는 컴파일 과정에서 계산될 수 있는 리터럴 표현을 위한 이름을 제공한
다. 언어에는 다른 종류의 값을 불변으로 선언하는 매커니즘은 없다. 최신 소프트웨어 엔지니
어링은 불변성을 받아들인다.
MIT
소프트웨어 구성
Software
construction
2
과정은 그 이유를 “불변
Immutable
의 타입은 버그로부터 조금 더 안전하고, 더 이해하기 쉬우며 변경에 더 적합하다. 가
변성
mutable
은 프로그램이 무엇을 하는지 더 이해하기 힘들게 만들며 협업하기 힘들게 한다”라
고 설명한다.
Go
에서 불변한 선언의 부족은 문제가 될 수 있지만, 파라미터를 값이나 포인터로 선택할 수
있도록 하는 기능이 그런 문제를 해결할 수 있다. 소프트웨어 ...