EDIT: 2024/12/04 Go1.24からomitzeroがencoding/jsonに追加される。 それに伴って記事に述べられているnon-sliceバージョンのund.Undのほうが推奨しやすくなったりいろいろ事情が変わる。 GoのT | null | undefinedは[]Option[T]でよかった github.com/oapi-codegen/nullableがmap[bool]Tをベースにencoding/jsonにオミットされることが可能なT | null | undefinedな型を定義していた (以前の記事時点では全然思いついてなかった) type Option[T any] struct{valid bool; v T}を定義してtype undefinedable []Option[T]としたほうがパフォーマンスが出るんじゃないかと思って試した。 ほんのち