Posted at

Protocol BuffersでGoのSlice・Mapを生成させる方法


概要

Protocol Buffersで、Goにコンパイル後にSlice・Mapを生成させるために、protocol definitionにどのように定義すれば良いかの解説となります。


slice

repeatedを使う

message Result {

repeated string message = 1;
}

これをコンパイルすると、

type Result struct {

Messages []string
}

こうなります。


map

map<string, Bar> を使う


message Company {
map<int32, string> members = 1;
}

これをコンパイルすると、

type Company struct {

Members map[int32]string
}

こうなります。


参考

Go Generated Code - Protocol Buffers