Gibt es einen technischen Grund, warum nicht exportierte Felder von encoding / json nicht berücksichtigt werden? Wenn nicht und es ist eine willkürliche Entscheidung, könnte es eine zusätzliche Hintertüroption (sagen wir '+') geben, die aufgenommen werden kann, obwohl sie nicht exportiert wird?
Das Erfordernis des Client-Codes zum Exportieren, um diese Funktionalität zu erhalten, ist unglücklich, insbesondere wenn Kleinbuchstaben die Kapselung bereitstellen oder die Entscheidung, Strukturen zu marshallen, viel später als das Design dieser Strukturen erfolgt.
Wie gehen die Leute damit um? Einfach alles exportieren?
Wenn Sie keine Feldnamen exportieren, ist es auch schwierig, den vorgeschlagenen Redewendungen zu folgen. Ich denke, wenn eine Struktur X Feld Y hat, können Sie keine Zugriffsmethode Y () haben. Wenn Sie den Schnittstellenzugriff auf Y bereitstellen möchten, müssen Sie sich einen neuen Namen für den Getter einfallen lassen, und unabhängig davon, was Sie laut http://golang.org/doc/effective_go.html#Getters für etwas Unidiomatisches erhalten