JSON и работа с неэкспортируемыми полями

Есть ли техническая причина, по которой неэкспортируемые поля не включаются в encoding/json? Если нет, и это произвольное решение, может ли быть дополнительная опция черного хода (скажем, «+») для включения, даже если она не экспортирована?

Требование экспорта клиентского кода для получения этой функциональности кажется неудачным, особенно если нижний регистр обеспечивает инкапсуляцию или решение о маршалировании структур принимается намного позже, чем их проектирование.

Как люди справляются с этим? Просто экспортировать все?

Кроме того, экспорт имен полей не затрудняет использование предложенных идиом. Я думаю, что если структура X имеет поле Y, у вас не может быть метода доступа Y(). Если вы хотите предоставить интерфейсный доступ к Y, вы должны придумать новое имя для геттера, и независимо от того, что вы получите, что-то неидиоматическое согласно http://golang.org/doc/efficient_go. html#Getters

61
задан Flimzy 20 June 2017 в 10:43
поделиться