go的proto结构作为参数传递,如果改变repeated里的值?
pb大概结构体如下
message Link {
bytes url = 1;
};
message ExtractInfo {
.....
repeated Link links = 60;
};
exInfo是一个ExtractInfo类型的指针,作为参数传进parser函数里,然后如果我想在parser函数里给exInfo里的links append值,该怎么做呢?以下代码中links := exInfo.Links
取出的值是[]*link
类型,所以links不是一个指针,而是一个值,函数返回后,不会改变main里面的值。
func main() {
...
exInfo := &proto.ExtractInfo{}
parser(dom, exinfo, m)
...
}
func parser(dom*goquery.Document, exInfo *proto.ExtractInfo, m map[string]interface{})
{
li := &proto.Link{
Url: []byte(url),
}
links := exInfo.Links
links = append(links, li)
}
你是要这样?