Skip to content

Instantly share code, notes, and snippets.

@taknb2nch
Last active April 21, 2024 10:41
Show Gist options
  • Save taknb2nch/cf278f65a0ccb38aca0f34793f9b0fd6 to your computer and use it in GitHub Desktop.
Save taknb2nch/cf278f65a0ccb38aca0f34793f9b0fd6 to your computer and use it in GitHub Desktop.
Golang memo

Datastore emulator

https://zenn.dev/link/comments/70ab12091a8253

DATASTORE_DATASET: hoge-project
DATASTORE_EMULATOR_HOST: 0.0.0.0:8812
DATASTORE_EMULATOR_HOST_PATH: 0.0.0.0:8812/datastore
DATASTORE_HOST: http://0.0.0.0:8812
DATASTORE_PROJECT_ID: hoge-project

環境変数として上記を必要とされているが、重要なのは DATASTORE_EMULATOR_HOST のみ

プログラム側からは GOOGLE_CLOUD_PROJECT などの環境変数プロジェクトIDを指定して datastore.NewClient が実行されるため、 GOOGLE_CLOUD_PROJECT などで指定されたプロジェクトIDに紐づいたデータが保存される(複数のプロジェクトIDが混在しても構わない)

結局のところ、 プログラム側で指定するプロジェクトID と、 google-cloud-gui で指定するプロジェクトID が一致する必要がある

go embed

//go:embed パス
  • パスは /. で開始できない
  • //go:embed を記述しているファイルより上位階層は参照できない
  • all: をつけることで、すべてのファイルを埋め込むことができる(., _)

generic interface

https://blog.grainrigi.net/post/go-pointer-to-type-param/ https://stackoverflow.com/questions/71444847/go-with-generics-type-t-is-pointer-to-type-parameter-not-type-parameter

unicode space

https://qiita.com/suin/items/1a878dd3c7e7a4b14039

slog

Handler.WithAttrs([]slog.Attr{
		slog.Group("", ""),
})

とした場合は、後方の

logger.With(slog.Group("", ""))

で上書きされる

logger.With(slog.Group("", ""))

とした後に更に

logger.With(slog.Group("", ""))

とした場合は結合されるがグループが結合されるのではなく、同じグループが複数登録されるのでJSONとしてはエラーとなる

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment