Go 또는 Golang에서 포인터를 사용하여 변수 값을 변경하는 방법은 무엇입니까?

6045 단어 go
Originally posted here!

Go 또는 Golang에서 포인터를 사용하여 변수 값을 변경하려면 * 기호(별표) 뒤에 값을 변경해야 하는 변수의 메모리 주소를 가리키는 포인터 변수 이름을 사용할 수 있습니다. 의. 그런 다음 = 연산자(할당)를 사용하여 값을 할당할 수 있으며 해당 값이 원래 변수에 할당됩니다. 이것을 Go에서는 포인터 역참조라고 합니다.

TL; DR




package main

import "fmt"

func main() {
    // a simple variable
    role := "Admin"

    // get the memory address of the `role` variable
    roleMemAddr := &role

    // assign the value of `Employee` to the `role` variable
    // using the `roleMemAddr` pointer variable and dereferencing
    // it using the `*` symbol to assign the new value
    *roleMemAddr = "Employee"

    // log the value of `role` variable to console
    fmt.Println(role) // Employee ✅
}


예를 들어, 다음과 같이 rolestring 유형 값을 갖는 Admin라는 변수가 있다고 가정해 보겠습니다.

package main

func main(){
    // a simple variable
    role := "Admin"
}


이제 role 변수의 메모리 주소를 보유할 포인터 변수를 만들어 봅시다.

다음과 같이 할 수 있습니다.

package main

func main(){
    // a simple variable
    role := "Admin"

    // get the memory address of the `role` variable
    roleMemAddr := &role
}


변수의 메모리 주소를 가져오는 방법에 대한 자세한 내용은 How to get the memory address of a variable in Go or Golang? 블로그를 참조하십시오.
role 포인터 변수를 사용하여 원래 string 변수의 값을 EmployeeroleMemAddr 유형 값으로 변경하는 것을 목표로 합니다. 이를 위해 * 기호 다음에 roleMemAddr 포인터 변수 이름을 사용한 다음 = 연산자를 사용하여 string 유형 값을 Employee 할당할 수 있습니다. 이 기술을 포인터 역참조라고 합니다.

다음과 같이 할 수 있습니다.

package main

func main() {
    // a simple variable
    role := "Admin"

    // get the memory address of the `role` variable
    roleMemAddr := &role

    // assign the value of `Employee` to the `role` variable
    // using the `roleMemAddr` pointer variable and dereferencing
    // it using the `*` symbol to assign the new value
    *roleMemAddr = "Employee"
}


마지막으로 원래role 변수의 값이 변경되었는지 확인하기 위해 해당 값을 다음과 같이 콘솔에 기록해 보겠습니다.

package main

import "fmt"

func main() {
    // a simple variable
    role := "Admin"

    // get the memory address of the `role` variable
    roleMemAddr := &role

    // assign the value of `Employee` to the `role` variable
    // using the `roleMemAddr` pointer variable and dereferencing
    // it using the `*` symbol to assign the new value
    *roleMemAddr = "Employee"

    // log the value of `role` variable to console
    fmt.Println(role) // Employee ✅
}


보시다시피 Go에서 포인터 변수를 사용하여 변수 값을 성공적으로 변경했습니다. 예이 🥳!

The Go Playground에 있는 위의 코드를 참조하십시오.

그게 다야 😃.

이 정보가 유용하다고 생각되면 자유롭게 공유하세요 😃.

좋은 웹페이지 즐겨찾기