構造体へのポインタ
CoddyのGOジャーニー「基礎」セクションの一部 — レッスン 97/109。
構造体を扱う際、他の型と同様にそれらへのポインタを作成することができます。これは、大きな構造体を効率的に渡すのに役立ちます。
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"
// 名前と年齢のフィールドを持つPerson構造体
type Person struct {
name string
age int
}
func main() {
// Person構造体を作成する
person := Person{
name: "John",
age: 25,
}
// Person構造体へのポインタを作成する
personPtr := &person
// 元の人物情報を表示する
fmt.Println("Original person:")
fmt.Printf("Name: %s, Age: %d\n", person.name, person.age)
// TODO: ポインタを使用して、人物の名前を "Jane" に、年齢を 30 に変更してください
// ヒント: ドット記法を使用して、ポインタ経由で構造体のフィールドにアクセスできます
// 更新された人物情報を表示する
fmt.Println("Updated person:")
fmt.Printf("Name: %s, Age: %d\n", person.name, person.age)
}このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。