2 回答

TA貢獻1851條經驗 獲得超4個贊
Go是一個具有非公共字段的time.Time
結構,不能直接通過協議緩沖區發送。
相反,將任何time.Time
值轉換為 google 的 protobuf 時間類型。)
例如,在您的.proto
文件中:
syntax = "proto3";
import "google/protobuf/timestamp.proto";
message MyData {
? ? google.protobuf.Timestamp? ?updated? ? ? ? ? ? ?= 1;
? ? google.protobuf.Timestamp? ?created? ? ? ? ? ? ?= 2;
}
在你的代碼中:
import (
? ? "time"
? ? "github.com/golang/protobuf/ptypes"
)
// ...
updatedTime := time.Now()
updatedProto, err := ptypes.TimestampProto(updatedTime)
// ...
mydate := &pb.MyData{
? ? updated: updatedProto,
}

TA貢獻1864條經驗 獲得超6個贊
正如你擁有的那樣
*res.CurentTime = time.Now()
將首先取消引用res.CurentTime
(這就是*
此處所做的),如果是nil
,將立即出現恐慌。之后發生什么并不重要。相反,您需要分配一個指針,而不是為現有的 ( nil
) 指針分配新值:
now := time.Now() res.CurentTime = &now
- 2 回答
- 0 關注
- 238 瀏覽
添加回答
舉報