【初心者向け】Go言語の構造体(struct)の使い方|基礎から完全理解

プログラム

はじめに

Go言語でデータをまとめて扱うときに使うのが「構造体(struct)」です。

「変数が増えて管理が大変…」
👉 そんなときにstructが活躍します。

この記事では、Goの構造体の使い方を初心者でも理解できるように解説します。


構造体(struct)とは?(超重要)

構造体とは「複数のデータをまとめる箱」です。

例えば👇

  • 名前
  • 年齢
  • メール

👉 これらを1つにまとめて管理できます。


structの基本構文

type 構造体名 struct {
フィールド名 型
}

構造体の作り方

type User struct {
Name string
Age int
}

👉 「User」という新しい型を作る


インスタンスの作成

user := User{
Name: "Tom",
Age: 30,
}

値の取得・変更

fmt.Println(user.Name)

user.Age = 31

👉 ドット(.)でアクセス


初期化の別パターン

user := User{"Tom", 30}

👉 順番で指定(初心者は非推奨)


ポインタで扱う(重要)

user := &User{Name: "Tom", Age: 30}

user.Age = 40

👉 Goはポインタでも「.」でアクセスできる


メソッド(構造体の関数)

func (u User) greet() {
fmt.Println("こんにちは", u.Name)
}

呼び出し

user.greet()

👉 structに機能を持たせる


値レシーバ vs ポインタレシーバ

func (u *User) updateAge(age int) {
u.Age = age
}

👉 値を変更したいときはポインタ


structとmapの違い

項目structmap
固定柔軟
安全性高い低い
用途データ設計データ管理

👉 実務では両方使う


structとJSON(実務重要)

type User struct {
Name string `json:"name"`
Age int `json:"age"`
}

👉 API開発で必須


structのネスト(応用)

type Address struct {
City string
}

type User struct {
Name string
Address Address
}

👉 複雑なデータを扱える


初心者がつまずくポイント

❌ フィールド名が小文字

name string ← 外部から見えない

👉 大文字にする


❌ ポインタ理解不足

👉 値が変わらない原因


❌ 初期化ミス

👉 型と順番に注意


実践サンプル

package main

import "fmt"

type User struct {
Name string
Age int
}

func main() {
user := User{Name: "Tom", Age: 30}

fmt.Println(user.Name)
}

学習のコツ

  • struct+メソッドで理解
  • mapと比較する
  • JSONで使う

👉 実務に直結する重要分野


まとめ|structは超重要

Go言語の構造体は👇

✔ データをまとめる
✔ メソッドを持てる
✔ 実務で必須

👉 Goの設計の中心

コメント

タイトルとURLをコピーしました