A Day In The Life

とあるプログラマの備忘録

Golang書くときのちょっとしたテクニック

関数にオプショナルな引数を設定したいとき

FunctionalOptionPatternを使って実装する

Functional Option Pattern

MarshalJSONを使ってJSONに表示用のフィールドを追加する

無限ループしないように元の構造体を拡張する

Custom JSON Marshalling in Go · Choly's Blog

Enum

数値系Enum

type DeviceType uint
const (
    Unknown DeviceType = iota
    Android DeviceType
    IOS DeviceType
)

ゼロ値をUnknownにするのがGolang