第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

咕嚕咕嚕 - 如何將值初始化為*時間。時間

咕嚕咕嚕 - 如何將值初始化為*時間。時間

Go
開滿天機 2022-09-26 19:36:49
我在某個文件中定義了一個結(jié)構(gòu)device.gotype Payload struct {    ...    Timestamp *time.Time  `json:"timestamp,omitempty"`    ...}現(xiàn)在我想在其他文件中初始化此結(jié)構(gòu),我正在嘗試此操作:payload:= &device.Payload{    ....    Timestamp: time.Now(), // throws error    ... //other initializations work fine}不能使用時間。Now() (時間類型的值。時間)作為*時間。結(jié)構(gòu)文字中的時間值我想將變量初始化為當(dāng)前 UTC 時間。我是高朗的新手。我該怎么做?
查看完整描述

2 回答

?
qq_花開花謝_0

TA貢獻1835條經(jīng)驗 獲得超7個贊

時間。Now() 返回時間類型的值。時間,這不是。*time.Time

請注意,您也不能獲取函數(shù)調(diào)用的返回值的地址,也不能這樣做。詳情請參見如何從函數(shù)調(diào)用中獲取返回值的指針?&time.Now()

您可以做的是使用類型的變量并獲取其地址:time.Time

var t = time.Now()

payload:= &device.Payload{
    Timestamp: &t,
}

另一個“流行”選項是創(chuàng)建一個幫助器函數(shù)來返回值的地址(您可以直接將函數(shù)調(diào)用的返回值傳遞給該函數(shù)):time.Time

func timePtr(t time.Time) *time.Time {    return &t
}

payload:= &device.Payload{
    Timestamp: timePtr(time.Now()),
}

有關(guān)詳細信息和其他選項,請參閱如何在 Go 中執(zhí)行文字 *int64?

我假設(shè)你想要一個指針,因為你想要允許“缺少時間”選項,這是包尊重“丟失時間”所必需的(詳細信息:JSON omitempty 隨時間。時間字段)。請注意,在其他情況下,可能不需要自動轉(zhuǎn)到指針:您可以使用(這是一個結(jié)構(gòu))的零值來指示“缺少時間”狀態(tài)。為了輕松判斷 a 是否為零值,您可以使用時間.相關(guān)內(nèi)容:表示可選時間的慣用語。結(jié)構(gòu)中的時間encoding/jsontime.Timetime.Time


查看完整回答
反對 回復(fù) 2022-09-26
?
江戶川亂折騰

TA貢獻1851條經(jīng)驗 獲得超5個贊

時間。Now() 返回一個 Time 值,但您的結(jié)構(gòu)正在尋找指針。將結(jié)構(gòu)更改為

type Payload struct {
    ...
    Timestamp time.Time  `json:"timestamp,omitempty"`
    ...
}

從文檔(https://pkg.go.dev/time#Time):

使用時間的程序通常應(yīng)將它們存儲并作為值(而不是指針)傳遞。也就是說,時間變量和結(jié)構(gòu)字段的類型應(yīng)為 time。時間,而不是*時間。時間。


查看完整回答
反對 回復(fù) 2022-09-26
  • 2 回答
  • 0 關(guān)注
  • 141 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號