Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Goでリフレクションする、その前に / Kansai.go #1

Goでリフレクションする、その前に / Kansai.go #1

utagawa kiki

May 25, 2024
Tweet

More Decks by utagawa kiki

Other Decks in Programming

Transcript

  1. こんなとこにもリフレクション (1) encoding/json パッケージによるJSONシリアライズ・デシリアライズ type S struct { X int

    `json:"x"` Y string `json:"y" Z int `json:"z,omitempty"` } b, _ := json.Marshal(S{X: 100, Y: "hello"}) fmt.Println(string(b)) // {"x":100,"y":"hello"}
  2. こんなとこにもリフレクション (2) github.com/jmoiron/sqlx を使ったDBアクセス type User struct { Id int

    `db:"id"` Name string `db:"name"` } user := User{} _ = db.GetContext( ctx, &user, `SELECT * FROM user WHERE id = ?`, id, )
  3. こんなとこにもリフレクション (3) github.com/caarlos0/env を使った環境変数のパース type Config struct { Addr string

    `env:"ADDR"` IsLocal bool `env:"IS_LOCAL" envDefault:"false"` } cfg := Config{} _ = env.Parse(&cfg)