0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Go入門 #04:構造体の基本と使い方

Posted at

構造体とは

複数の値をひとつにまとめて扱えるデータ構造
たとえば「名前」「年齢」「職業」のように、関連する情報をまとめてひとつの“かたまり”として扱うことができます。

書き方

構造体を定義するには、typestructを使います。

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レスポンスや検索結果を複数の値で返す代わりに、構造体でまとめて返すとわかりやすくなります

まとめ

構造体は、複数の値をひとつにまとめて扱える型であり、データを整理して意味を持たせるための基本的な仕組みです。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?