kanemeate

働きたくない

1/1

4:00->12:30くらい。

レコメンド2434の再実装にあたり、DynamoDBの使い方を改めて確認している。
実務では単純なKVSとしてしか使ってないので(それで充分有能だけど)使い倒すほどの理解が足りない。雑な解説よく見るけどフルスキャン怖くないんか?って感じ。

だらだらホロ見ながらコード書いてた。小規模でもコーディングしてると毎回何かしらの気付きがある。たまにハースでデーモンハンターぶんぶんしてた。

昨日サボったから1時間バイク漕いだ。

今日結構はまったポイント。入れ子になったjsonタグ付きの構造体を定義し、別途初期化して利用しようとする時、型だけじゃなくてjsonタグまで一致していないといけないということ。
何言っているかというと下記を見ればだいたいわかるはず。
この辺暗黙にやってくんねえの?って思ったけどまあこういうケースを避けるようにしたほうが建設的ではある。
修正できる話なのか仕組み上難しいのかもよくわからんけど、知っていれば特に困るわけでもない……。

type StructA struct {
	StructB []struct {
		StructC StructC `json:"tag2"`
	} `json:"tag1"`
}

type StructC struct {}

func function() {
	// OK
	x := StructA{
		StructB: []struct {
			StructC StructC `json:"tag2"`
		}{
			{},
		},
	}
	// NG
	y := StructA{
		StructB: []struct {
			StructC StructC
		}{
			{},
		},
	}
}

GoLandだと複雑な型はエラーメッセージで省略されるから結構悩んだ。Go Playgroundだとちゃんとエラーメッセージ読めた。