> 백엔드 개발 > Golang > Go에서 포인터에 의해 역참조된 값을 어떻게 수정합니까?

Go에서 포인터에 의해 역참조된 값을 어떻게 수정합니까?

Patricia Arquette
풀어 주다: 2024-10-29 08:01:30
원래의
343명이 탐색했습니다.

How Do You Modify the Value Dereferenced by a Pointer in Go?

Go에서 포인터가 참조하는 값 수정

함수에 포인터를 전달하면 참조하는 값을 수정할 수 있습니다. 하지만 이 작업을 올바르게 수행하려면 포인터의 내부 작동 방식을 이해해야 합니다.

포인터 역참조

포인터가 가리키는 값을 수정하려면 포인터를 역참조하는 것이 필수적입니다. Go에서는 별표 연산자(*)가 이 목적으로 사용됩니다. 포인터를 역참조하면 포인터가 가리키는 기본 값에 액세스할 수 있습니다.

포인터 값 변경과 포인터 값 변경

주요 차이점은 포인터 값 변경과 포인터 값 변경 사이에 있습니다. 을 가리킨다. 포인터 변수에 새 값을 할당하면 저장되는 주소만 변경됩니다. 예를 들어 아래 코드 조각은 가리키는 값을 수정하지 않습니다.

<code class="go">func f(p *Test) {
   p = &Test{4}
}</code>
로그인 후 복사

지정된 값 수정

지정된 값을 수정하려면 역참조 연산자를 사용해야 합니다. 이는 명시적으로 또는 암시적으로 수행할 수 있습니다.

명시적 역참조:

<code class="go">func f(p *Test) {
   *p = Test{4}
}</code>
로그인 후 복사

암시적 역참조:

<code class="go">func f(p *Test) {
   p.Value = 4
}</code>
로그인 후 복사

두 경우 모두 p가 가리키는 값이 변경됩니다.

포인터 대 포인터 수정

포인터에 포인터를 전달(*Test)하면 주 함수에 저장된 포인터 값을 수정할 수 있습니다. . 그러나 원래 포인터가 가리키는 값은 변경되지 않습니다.

<code class="go">func f(p **Test) {
   *p = &Test{4}
}</code>
로그인 후 복사

요약하자면, 포인터를 함수에 전달할 때 포인터 값을 수정하는 것과 그 값을 수정하는 것의 차이점을 이해하는 것이 중요합니다. 을 가리킨다. 후자의 작업을 수행하려면 기본 데이터 값을 수정할 수 있도록 포인터 역참조가 필수적입니다.

위 내용은 Go에서 포인터에 의해 역참조된 값을 어떻게 수정합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿