go - 在Golang中解码Protobuf(proto2)后如何设置可选参数?

标签 go protocol-buffers protobuf-go

我在protobuf中有5个字段(3个必需的fileds和2个可选的fileds)。从生产者端,我将发送3个必填文件(marshall),并在消费者端获取3个必填文件(unmarshall)。现在,我想在使用者端添加这两个可选参数值。可能吗 ?如果是,如何?

提前致谢

最佳答案

要为已经存在于内存中的结构更新字段,请像下面的示例一样用字段声明变量名。
如果someStruct在内存中,则可以随时覆盖该值。

someStruct.SomeField = SomeValue

package main

import (
    "fmt"
)

type Data struct {
    FieldOne   string
    FieldTwo   int
    FieldThree []string
    FieldFour  float64
}

func main() {
    data := createData("A string", 9)
    data = data.rcv()
    fmt.Println(data)
}

func createData(f1 string, f2 int) *Data {
    d := &Data{}
    d.FieldOne = f1
    d.FieldTwo = f2
    return d
}

func (d *Data) rcv() *Data {
    d.FieldThree = []string{"string1", "string2"}
    d.FieldFour = 1.2
    return d
}

关于go - 在Golang中解码Protobuf(proto2)后如何设置可选参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58871081/

相关文章:

go - 使用 aws-sdk go 从 COS 读取文件

c++ - 浅拷贝到 Protocol Buffer 的字节字段

go - 从不同的包导入原始文件会导致 'missing method protoreflect'

go - go中如何返回大数据结构的唯一元素?

go - 在regexp.MatchString方法中替换变量

golang test spy 错误地比较相等性

json - gRPC 服务器可以作为另一个 gRPC 客户端的客户端吗?

python - 如何在 python 中向 Dialogflow 事件添加参数

golang protobuf 无法在泛型类型中解码