Menu
Coddy logo textTech

構造体へのポインタ

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
challenge icon

チャレンジ

初心者

このチャレンジでは、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)
}
quiz icon腕試し

このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。

基礎のすべてのレッスン