登录
首页 >  Golang >  Go问答

如何在 Protocol Buffer 中实现自定义字符串操作?

来源:stackoverflow

时间:2024-03-10 16:18:25 298浏览 收藏

“纵有疾风来,人生不言弃”,这句话送给正在学习Golang的朋友们,也希望在阅读本文《如何在 Protocol Buffer 中实现自定义字符串操作?》后,能够真的帮助到大家。我也会在后续的文章中,陆续更新Golang相关的技术文章,有好的建议欢迎大家在评论留言,非常感谢!

问题内容

假设我有一个原型文件,例如:

message sample {
  test t = 1;
}

message test {
  string s = 1;
}

我想在 test 类型上拥有自己的自定义 string 方法,但由于 protoc 的自动生成代码已经包含 string 方法,因此我的自定义 string 方法会导致编译器错误。

值得一提的是自动生成的 string 方法是:

func (x *Test) String() string {
    return protoimpl.X.MessageStringOf(x)
}

上面的代码,只是打印值本身,但我想知道是否有任何方法可以使用我的自定义 string 实现?


正确答案


我认为您不应该乱搞生成的 pb 文件并使用包装器结构。

type Wrapper struct{
   pb.Sample
}

func (w Wrapper) String() string{
  ...
}

我想到的第二个选项是,也许您可​​以为 protoc 编写一个插件,并使其在给出所需的结构标记时使用这些方法。

好了,本文到此结束,带大家了解了《如何在 Protocol Buffer 中实现自定义字符串操作?》,希望本文对你有所帮助!关注golang学习网公众号,给大家分享更多Golang知识!

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>