La versione proto2 di buffer protocollo consente di specificare i valori predefiniti per gli elementi del messaggio:Perché non ci sono valori predefiniti personalizzati in proto3?
optional double scaling_factor = 3 [default = 1.0];
Perché questo non è più possibile in proto3? Considero questa una funzionalità accurata per salvare byte aggiuntivi sul filo senza la necessità di scrivere alcun codice wrapper.
Sembra un peccato che non possano semplicemente rilevare la presenza sul campo e applicare l'inadempimento contrattuale quando mancano. Questo di per sé dovrebbe essere agnostico del linguaggio. –
@MeirionHughes - Credo che il problema si presenti quando si crea un nuovo oggetto, non fuori dal filo. Se la tua lingua non fornisce alcun concetto di costruttori e nessun concetto di accessor, non puoi inizializzare i campi ai valori predefiniti, indipendentemente dalla serializzazione. –
Ma sicuramente puoi semplicemente assegnare i campi struct dopo la costruzione? Non riesco a pensare a nessuna ragione ragionevole per cui avresti un linguaggio che definisce le strutture non inizializzabili e immutabili ... –