protobuf 中go_package的意思

一個簡單的 protobuf 文件定義如下:

response.proto

syntax = "proto3";

option go_package = "github.com/TripleCGame/apis/api;api";
import "google/protobuf/struct.proto";

message Response {
  int32 code = 1;
  google.protobuf.Struct data = 2;
  string msg = 3; 
}

syntax = “proto3”;—指定使用 proto3 語法

option go_package = "github.com/TripleCGame/apis/api;api";—前一個參數用於指定生成文件的位置,後一個參數指定生成的 .go 文件的 package 。具體語法如下:

option go_package = "{out_path};out_go_package";

注意:這裏指定的 out_path 並不是絕對路徑,只是相對路徑或者說只是路徑的一部分,和 protoc 的 --go_out 拼接後纔是完整的路徑。

生成的pb.go文件:

go_package的定義也體現在import 該proto的文件的地方:

 這裏剛好import的時候制定路徑

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章