最近Go言語でハマった4選
mapにセットできない事象
if r.Level2 > 0 { breadcrumb["level"] = "2" breadcrumb["category_name"] = "" c.Breadcrumb[r.Level2] = breadcrumb } if r.Level3 > 0 { breadcrumb["level"] = "3" breadcrumb["category_name"] = "" c.Breadcrumb[r.Level3] = breadcrumb }
上のコードで下がデバッグコード
Breadcrumb map[%!s(int=9):map[category_name: level:3] %!s(int=10):map[category_name: level:3] %!s(int=26):map[category_name: level:3] %!s(int=27):map[category_name: level:3]]
なぜかうまく変数にセットできない
breadcrumb := map[string]string{}
で初期値を付けないといけないみたい
下記のようにしないといけない。
if r.Level1 > 0 { breadcrumb := map[string]string{} breadcrumb["level"] = "1" breadcrumb["category_name"] = "" c.Breadcrumb[r.Level1] = breadcrumb } if r.Level2 > 0 { breadcrumb := map[string]string{} breadcrumb["level"] = "2" breadcrumb["category_name"] = "" c.Breadcrumb[r.Level2] = breadcrumb } if r.Level3 > 0 { breadcrumb := map[string]string{} breadcrumb["level"] = "3" breadcrumb["category_name"] = "" c.Breadcrumb[r.Level3] = breadcrumb }
Breadcrumb map[%!s(int=9):map[category_name: level:1] %!s(int=10):map[category_name: level:2] %!s(int=26):map[category_name: level:3] %!s(int=27):map[category_name: level:3]]
定義していないbsonのデータ
DBをmongoに移行したので、bsonを利用してデータを取得しないといけない。
しかし
opts := options.Find().SetProjection(bson.D{{"updated_at", -1}})
でリザルトの構造体が下記の時_idしか取得できない。何もエラーが出ない
type CategoryTreeStruct struct { LeafID int `bson:"_id"` Level1 int `bson:"level_1"` Level2 int `bson:"level_2"` Level3 int `bson:"level_3"` }
構造体にupdated_atがなかったから、2時間ハマった
カラム名は思い出
元々はクイズを作り合って回答し合おうというていのWEBアプリだったので、回答者なるカラムがrespondent_idになってびっくり
とりあえずrespondent_idをuser_idに変更
1件しか取得できないDBの構造なのにSelectでsingle, 複数 関係なしに複数取るようになっていた
[]structもanswersと複数形にするべきだと今は思うanswerで動いてしまっているので、特に変更はなし
string型からHTML型への変換
n.NoteTxtHtml = template.HTML(n.NoteTxt)
これをググるだけで1時間経過、ポイントがずれる検索結果ばかり。。。
なので、ネット上に挙げておく
登録日:
更新日:
by
プログラマーこまつ