Google protobuf me permet d'écrire du code proto comme ceci:Pourquoi protobuf les deux champs requis/option accepte la valeur « par défaut », je pense que « facultatif » devrait
syntax="proto2";
message hello
{
optional int32 id=1;
required string str=2[default="abc"];
optional int32 op=3 [default=15];
}
Il compile, pas de problème. Je ne comprends pas tout à fait que, pour le champ "optionnel", quand il n'y a pas de valeur spécifiée, le flux de décodage me renvoie la valeur par défaut, c'est OK. Mais qu'en est-il du champ "required", il ne peut pas être vide, alors comment son "default" est-il aussi valide? Dans quel scénario?