gpt4 book ai didi

go - 如何在 golang 中使用 protobuf.any

转载 作者:行者123 更新时间:2023-12-01 22:20:05 51 4
gpt4 key购买 nike

我在我的 go 项目中使用 grpc。下面是代码:
example.proto:

syntax = "proto3";

message Example {
string message = 1;
google.protobuf.Any details = 2;
}

main.go
func logMessage (m string, d interface{}) {
message := & example.message{
message: m,
details: ??
}
log(&message)
}

但我不确定如何处理 details(interface{}) 字段。我知道我可以使用任何类型的接口(interface),但不知道如何在这里使用它。任何人都可以帮忙吗?谢谢

最佳答案

由于不推荐使用 protobuf/ptypes,因此值得使用 anypb.UnmarshalTo

import (
"google.golang.org/protobuf/types/known/anypb"
"github.com/golang/protobuf/ptypes/any"
)

func Unmarshal(data *any.Any) (*YourMessage, err) {
var m YourMessage
err := anypb.UnmarshalTo(data, &m, proto.UnmarshalOptions{})
return &m,err
}

关于go - 如何在 golang 中使用 protobuf.any,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64055785/

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