由于類型不匹配,我無法調(diào)用 gRPC 函數(shù)我的原型文件 :message Analytics { fields ...}message AnalyticsSet { repeated Analytics analytics = 1;}service StatService { rpc MyMethod(AnalyticsSet) returns (<something>) {}}現(xiàn)在,我需要叫“我的方法”我目前的代碼:type Analytics struct { same fields as in proto : Analytics}analytics := make([]Analytics, 4)// .. some modifications in analytics ..._, err := c.MyMethod(context.Background(), analytics)if err != nil { log.Fatalf("error: %s", err)}在原型文件中,“AnalyticsSet”是“分析”的數(shù)組,而在Go代碼中,“分析”是“分析”類型的數(shù)組,但這不足以稱為“MyMethod”,并且我面臨類型不匹配。我應(yīng)該如何修改 go 代碼?
1 回答

POPMUISE
TA貢獻(xiàn)1765條經(jīng)驗(yàn) 獲得超5個(gè)贊
必須使用從 proto 文件生成的結(jié)構(gòu) - 不能使用自己的類型。Analytics
您可以使用文件生成所需的 Go 代碼。下面是一個(gè)設(shè)置了 gRPC 生成選項(xiàng)的示例:。protoc
.proto
$ protoc --go_out=. --go-grpc_out=. --go_opt=paths=source_relative --go-grpc_opt=paths=source_relative analytics.proto
您的原型文件應(yīng)設(shè)置選項(xiàng)來描述生成的原型代碼所屬的 Go 導(dǎo)入路徑。您還需要安裝以下設(shè)備所需的 go/go-grpc 發(fā)電機(jī)實(shí)用程序:go_package
protoc
$ go install google.golang.org/protobuf/cmd/protoc-gen-go@latest $ go install google.golang.org/grpc/cmd/protoc-gen-go-grpc@latest
更多詳細(xì)信息,請(qǐng)參閱:
https://developers.google.com/protocol-buffers/docs/gotutorial
https://developers.google.com/protocol-buffers/docs/reference/go-generated
- 1 回答
- 0 關(guān)注
- 82 瀏覽
添加回答
舉報(bào)
0/150
提交
取消