Должен признаться, что терпеть не могу паттерн «функциональных опций», полюбившийся многим программистам на Go.
И особенно я не рад, что он пробрался в стдлибу вместе с новым пакетом json/v2 (финализирован в Go 1.27):
type Options interface { ... }
func Deterministic(v bool) Options
func FormatNilMapAsNull(v bool) Options
func FormatNilSliceAsNull(v bool) Options
// ...
func Marshal(in any, opts ...Options) (out []byte, err error)Обычная структура (см. скриншот) лучше во всех отношениях, на мой взгляд.
А вы что думаете?
