Go 구조체 전달 vs 포인터 전달

1 개요[ | ]

Go 구조체 전달 vs 포인터 전달
package main

import (
	"fmt"
)

type Foo struct {
	value int
}

func PassStruct(foo Foo) {
	foo.value = 42
}

func PassPointer(foo *Foo) {
	foo.value = 42
}

func main() {
	var foo1 Foo
	fmt.Printf("foo1: %+v\n", foo1)
	PassStruct(foo1) // 원본값 유지
	fmt.Printf("foo1: %+v\n", foo1)

	var foo2 Foo
	fmt.Printf("foo2: %+v\n", foo2)
	PassPointer(&foo2) // 원본값 변경됨
	fmt.Printf("foo2: %+v\n", foo2)
}


2 같이 보기[ | ]

3 참고[ | ]

문서 댓글 ({{ doc_comments.length }})
{{ comment.name }} {{ comment.created | snstime }}