protobuf中对消息内容进行赋值的不同方式(set_allocated_和mutable_)

1.简单的消息内容直接用set_来赋值就行。

2.自己定义的复杂嵌套消息不能够通过简单的set_来赋值,可采取set_allocated和mutable_两种方式,但是二者的赋值方式是不同的。

3.使用set_allocated_,赋值的对象需要new出来,不能用局部的,因为这里保存的是对象的指针。当局部的对象被销毁后,就会报错。

4.使用mutable_,赋值时候,可以使用局部变量,因为在调用的时,内部做了new操作。

总结:简单赋值用set_,复杂赋值最好不要用set_allocated_,而要用mutable_。

上一篇:google protobuf


下一篇:python安装protobuf教程