2 回答

TA貢獻(xiàn)1851條經(jīng)驗(yàn) 獲得超4個(gè)贊
Go是一個(gè)具有非公共字段的time.Time
結(jié)構(gòu),不能直接通過協(xié)議緩沖區(qū)發(fā)送。
相反,將任何time.Time
值轉(zhuǎn)換為 google 的 protobuf 時(shí)間類型。)
例如,在您的.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貢獻(xiàn)1864條經(jīng)驗(yàn) 獲得超6個(gè)贊
正如你擁有的那樣
*res.CurentTime = time.Now()
將首先取消引用res.CurentTime
(這就是*
此處所做的),如果是nil
,將立即出現(xiàn)恐慌。之后發(fā)生什么并不重要。相反,您需要分配一個(gè)指針,而不是為現(xiàn)有的 ( nil
) 指針分配新值:
now := time.Now() res.CurentTime = &now
- 2 回答
- 0 關(guān)注
- 209 瀏覽
添加回答
舉報(bào)