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

Jmnote (토론 | 기여)님의 2023년 4월 5일 (수) 02:28 판 (새 문서: ==개요== ;Go 구조체 전달 vs 포인터 전달 <syntaxhighlight lang='go' run> package main import ( "fmt" ) type Foo struct { value int } func PassStruct(foo Foo) { foo.v...)
(차이) ← 이전 판 | 최신판 (차이) | 다음 판 → (차이)

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 }}