gpt4 book ai didi

go - 如何在 Protocol Buffer 中使用自定义 String 方法?

转载 作者:行者123 更新时间:2023-12-05 06:00:11 26 4
gpt4 key购买 nike

假设我有一个像这样的原型(prototype)文件:

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 编写一个插件,并在需要的结构标签给出时让它使用这些方法。

关于go - 如何在 Protocol Buffer 中使用自定义 String 方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67823497/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com