構造体とは
複数の値をひとつにまとめて扱えるデータ構造
たとえば「名前」「年齢」「職業」のように、関連する情報をまとめてひとつの“かたまり”として扱うことができます。
書き方
構造体を定義するには、typeとstructを使います。
type 構造体名 struct {
フィールド名 型 [タグ]
}
例
type Example struct {
ID uint `json:"id"`
Content string `json:"content"`
}
| 部分 | 意味 |
|---|---|
type |
新しい型を定義するキーワード |
Example |
構造体の名前(自作の型名) |
struct { ... } |
構造体定義を始める |
ID uint |
フィールド名:ID、型:uint(符号なし整数) |
Content string |
フィールド名:Content、型:string
|
json:"id" |
構造体タグ(JSON変換時のキー名を指定) |
構造体の定義と利用(typeとvarの違い)
| 比較項目 | type struct |
var struct |
|---|---|---|
| 定義の目的 | 新しい型(設計図)を定義 | 1回きりの値を作る |
| 型名 | ある(例:Response) | なし(無名) |
| 再利用 | できる(関数内でも何回も) | できない(1つの変数だけ) |
| JSONレスポンスなど | よく使う(再利用時) | 一時的な出力などで使う |
-
type:「構造体という型の定義(設計図)」 -
var:「その型を使って作る変数(実体)」
だから両者はセットで使うことが多いですが、目的は別です。
「type=形を決める」「var=値を持たせる」
使う場面
- 複数の値をひとまとめにしたいとき
- 例:人の名前・年齢・職業など、関連するデータをセットで扱いたいとき
- メソッドを持たせて“型”として振る舞わせたいとき
- 構造体にメソッドを定義して、「データ+振る舞い」をひとまとまりにする
- 関数の引数・戻り値を整理したいとき
- たとえば、APIレスポンスや検索結果を複数の値で返す代わりに、構造体でまとめて返すとわかりやすくなります
まとめ
構造体は、複数の値をひとつにまとめて扱える型であり、データを整理して意味を持たせるための基本的な仕組みです。