我最近在我的Go 專案中建立了一個包來管理所有我的.proto 檔案。我將所有 .proto 檔案移至新包中,並將其匯入到我想要使用它們的另一個包中。但是,當我嘗試在其他套件中使用 proto.Unmarshal 時,收到以下錯誤:
var sensorData *prototemps.Sensor cannot use sensorData (variable of type *prototemps.Sensor) as protoreflect.ProtoMessage value in argument to proto.Unmarshal: missing method ProtoReflect
錯誤訊息表明類型 *prototemps.Sensor 不實作 ProtoReflect 方法。 proto.Unmarshal 需要此方法將二進位資料解組到目標訊息中。
要解決此問題,我需要匯入包含 *prototemps.Sensor 類型的 ProtoReflect 方法的正確套件。有兩個選項:
更新導入語句後,錯誤就解決了,我能夠成功使用proto.Unmarshal 解析二進位資料。
以上是為什麼從不同套件匯入 Proto 檔案會導致 Go 出現「Missing Method Protoreflect」錯誤?的詳細內容。更多資訊請關注PHP中文網其他相關文章!