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

How to set optional parameter after unmarshalling Protobuf ( proto2 ) in Golang?

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

提前致谢

要更新已在内存中的结构的字段,请使用字段声明变量名称,如下例所示。 如果 someStruct 在内存中,则可以随时覆盖该值。

someStruct.SomeField = 一些值

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
}