从golang中的fixed64 protobuf字段读取int64

时间:2016-02-01 22:31:01

标签: go protocol-buffers

我在.proto文件中有一个fixed64类型的字段。

我想把它读作int64字段:

score := int64(pb_obj.Score)

当我尝试编译行agove时,我收到错误消息cannot convert pb_obj.Score (type *uint64) to type int64。我也试过转换一个uint64,得到了一条几乎相同的消息。

2 个答案:

答案 0 :(得分:3)

pb_obj.Score的类型似乎是*uint64(指向uint64的指针),而不是uint64。您只需要访问指针引用的值:

score := int64(*pb_obj.Score)

(请参阅*前缀作为区别)

答案 1 :(得分:2)

根据编译错误,您使用的是uint64指针,而不是uint64值。您可以通过使用*运算符直接引用该值来获得所需的内容。我从来没有使用过protobuf,所以我可能会离开,但那会让你感动。这是一个很好的参考,可以帮助golang pointers