我在.proto文件中有一个fixed64
类型的字段。
我想把它读作int64字段:
score := int64(pb_obj.Score)
当我尝试编译行agove时,我收到错误消息cannot convert pb_obj.Score (type *uint64) to type int64
。我也试过转换一个uint64,得到了一条几乎相同的消息。
答案 0 :(得分:3)
pb_obj.Score
的类型似乎是*uint64
(指向uint64
的指针),而不是uint64
。您只需要访问指针引用的值:
score := int64(*pb_obj.Score)
(请参阅*
前缀作为区别)
答案 1 :(得分:2)
根据编译错误,您使用的是uint64指针,而不是uint64值。您可以通过使用*运算符直接引用该值来获得所需的内容。我从来没有使用过protobuf,所以我可能会离开,但那会让你感动。这是一个很好的参考,可以帮助golang pointers