#二項比較演算子の関数
- eq : a == b の場合trueを返す
- ne : a != b の場合trueを返す
- lt : a < b の場合trueを返す
- le : a <= b の場合trueを返す
- gt : a > b の場合trueを返す
- ge : a >= b の場合trueを返す
例:revelでのテンプレートの場合
{{if .user.Article.Published eq true}}<b>公開記事</b>{{else}}<b>非公開記事</b>{{end}}
#[]の意味
スライス
可変長配列を持たない代わりに実装された型。
配列全体のポインタ(ptr)、配列の長さ(len)、配列の容量(cap)からなるデータ構造を保持している。配列の部分列を簡単に取り出せる。
Go言語では、配列よりもスライスのほうが多く使われる。
参考サイト
http://qiita.com/mizukmb/items/b543f88bc37c9a75673f
#Preload
user := models.User{}
if err := DB.Preload("Article").Find(&user, id).Error; err != nil {
return c.HandleInternalServerError("Record Find Failure")
}
return c.Render(user, id)
article id = 1の場合のSQL
SELECT * FROM `user` WHERE (`user`.deleted_at IS NULL OR `user`.deleted_at <= '0001-01-02') AND ((id IN ('1')))
SELECT * FROM `article` WHERE (`article`.deleted_at IS NULL OR `article`.deleted_at <= '0001-01-02') AND ((user_id IN ('1')))
勉強のための自分メモです。
今後も勉強したものを追加していきます。
間違っている箇所やもっと簡潔に書けたりするコードがありましたら教えてください。
※まだ、勉強途中なので誤情報があるかもしれません。ご了承ください。
また、誤字脱字もご了承ください!