GO · 기초 문법
포인터 심화
포인터를 사용하여 값을 직접 수정하고, nil 포인터를 안전하게 처리합니다. 구조체 포인터와 슬라이스 포인터의 차이를 이해합니다.
기초 문법중급pointernildereferencenew
핵심 설명
포인터를 사용하여 값을 직접 수정하고, nil 포인터를 안전하게 처리합니다. 구조체 포인터와 슬라이스 포인터의 차이를 이해합니다.
Go code
package main
import "fmt"
func increment(p *int) {
if p == nil {
return // nil 안전 처리
}
*p++
}
func main() {
x := 10
increment(&x)
fmt.Println(x) // 11
// 포인터로 구조체 필드 수정
type User struct{ Name string }
u := &User{Name: "Go"}
u.Name = "Gopher" // (*u).Name과 동일
fmt.Println(u.Name)
// new로 포인터 생성
p := new(int) // *int, 0으로 초기화
*p = 42
fmt.Println(*p)
}학습 팁
Go에서 구조체 포인터는 자동 역참조됩니다. p.Field는 (*p).Field와 동일하게 동작합니다.
주의할 점
nil 포인터를 역참조하면 런타임 패닉이 발생합니다. 항상 nil 체크를 수행하거나, 값 타입 사용을 고려하세요.
자주 묻는 질문
포인터 심화란 무엇인가요?
포인터를 사용하여 값을 직접 수정하고, nil 포인터를 안전하게 처리합니다. 구조체 포인터와 슬라이스 포인터의 차이를 이해합니다.
포인터 심화 학습 시 주의할 점은 무엇인가요?
nil 포인터를 역참조하면 런타임 패닉이 발생합니다. 항상 nil 체크를 수행하거나, 값 타입 사용을 고려하세요.
Continue Learning
Go 학습을 이어가세요
총 200개의 독립 HTML 학습 문서 중 하나입니다. 각 문서는 고유 URL과 canonical 메타데이터를 가집니다.