구조체 포인터
Coddy GO 여정의 기초 섹션에 포함된 레슨 — 109개 중 97번째.
구조체를 다룰 때, 다른 타입과 마찬가지로 구조체에 대한 포인터를 생성할 수 있습니다. 이는 큰 구조체를 효율적으로 전달하는 데 유용합니다.
Person 구조체를 정의하고 이에 대한 포인터를 생성합니다:
type Person struct {
name string
age int
}
func main() {
person := Person{name: "Alice", age: 30}
// 구조체에 대한 포인터 생성
personPtr := &person
// 포인터를 통해 필드에 접근
fmt.Println(personPtr.name)
fmt.Println(personPtr.age)
}출력 결과는 포인터를 통해 필드에 접근할 수 있음을 보여줍니다:
Alice
30포인터를 통해 필드를 수정할 수도 있습니다:
personPtr.age = 31
fmt.Println(person.age) // 출력: 31챌린지
초급이 챌린지에서는 Go에서 구조체 포인터를 다루는 연습을 합니다. name과 age 필드를 가진 Person 구조체가 있습니다. 여러분의 과제는 구조체 포인터를 사용하여 사람의 정보를 업데이트하는 것입니다.
코드는 이미 Person 구조체와 그에 대한 포인터를 생성합니다. 포인터를 통해 사람의 정보를 수정해야 합니다.
치트 시트
& 연산자를 사용하여 구조체에 대한 포인터를 생성합니다:
type Person struct {
name string
age int
}
person := Person{name: "Alice", age: 30}
personPtr := &person포인터를 통해 구조체 필드에 접근하고 수정합니다:
// 필드 접근
fmt.Println(personPtr.name)
fmt.Println(personPtr.age)
// 필드 수정
personPtr.age = 31직접 해보기
package main
import "fmt"
// name과 age 필드를 가진 Person 구조체
type Person struct {
name string
age int
}
func main() {
// Person 구조체 생성
person := Person{
name: "John",
age: 25,
}
// Person 구조체에 대한 포인터 생성
personPtr := &person
// 원본 person 정보 출력
fmt.Println("Original person:")
fmt.Printf("Name: %s, Age: %d\n", person.name, person.age)
// TODO: 포인터를 사용하여 person의 이름을 "Jane"으로, 나이를 30으로 변경하세요.
// 힌트: 점 표기법(dot notation)을 사용하여 포인터를 통해 구조체 필드에 접근할 수 있습니다.
// 업데이트된 person 정보 출력
fmt.Println("Updated person:")
fmt.Printf("Name: %s, Age: %d\n", person.name, person.age)
}이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.
기초의 모든 레슨
2변수와 기본 자료형
변수란 무엇인가`:=`를 이용한 타입 추론정수 (int)부동 소수점 수불리언 (Booleans)문자열 (Strings)제로 값 (Zero Values)상수명명 규칙요약 - 변수와 타입