structとは
構造体を決定するのに用いる。今回の場合だと、ユーザー情報の構造体を定義するのに用いている。
上記の内容からユーザーの情報を定義してみる
user.go
package model
import "time"
// ユーザーの構造体を定義
type User struct {
ID uint `json:"id" gorm:"primaryKey"`
Email string `json:"email" gorm:"unique"`
Password string `json:"password"`
CreatedAt time.Time `json:"created_at"`
UpdatedAt time.Time `json:"updated_at"`
}
こちらの記事によると
投げ入れられるjson名をそのままGoの世界で扱いたくないということはよくあります。
ということがあるみたいです。理由は上記の記事に記述されてます。(こちらにも記述しておきます)
e.g. json名をGoの世界でそのまま使いたくないとき
- プロジェクトの命名規則と異なる。
- すでにnameという変数は使われていて名前がバッティングする。
- nameってなんの名前のこと指してるのかわからない。わかりやすいフィールド名にしたい。
また、コード内のjson:"id" gorm:"primaryKey"
の部分は、上記の構造体をjsonに変換した時に自動的にフィールド名を小文字に変換してくれる書き方です。
参考サイト