Thanks for the explanation. It does look much better in proto3. I will
see if it will be possible to switch to proto3.

2016-08-03 21:37 GMT+05:30 Ian Lance Taylor <i...@golang.org>:
> On Wed, Aug 3, 2016 at 8:58 AM, Sankar <sankar.curios...@gmail.com> wrote:
>>
>> I have a .proto2 file, like:
>>
>> message s {
>> optional double a = 1;
>> }
>>
>> When I run protoc and generate the .pb.go file, it contains code like:
>>
>> type S struct {
>> A                *float64 `protobuf:"fixed64,1,opt,name=a"
>> json:"a,omitempty"`
>> XXX_unrecognized []byte   `json:"-"`
>> }
>>
>> Why is the A field here a pointer instead of a normal float64 ?
>
> Because proto2 records not only the value of each field, but also
> whether the field is present or not.  Using a pointer is how the Go
> implementations indicates whether the field is present.
>
> This is better in proto3.  If you can switch to proto3, do so.
>
> Ian



-- 
Sankar P
http://psankar.blogspot.com

-- 
You received this message because you are subscribed to the Google Groups 
"golang-nuts" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to golang-nuts+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to