如果我有這樣的結(jié)構(gòu):type Message struct { Id int64 Message string ReplyTo *int64}然后,如果我確實(shí)像這樣創(chuàng)建了這個(gè)結(jié)構(gòu)的實(shí)例:var m Messagem.Id = 1m.Message = "foo bar yo"var replyTo = int64(64)m.ReplyTo = &replyTo然后它會(huì)起作用。但我想知道最后一步是否有捷徑?我嘗試做類(lèi)似的事情:m.ReplyTo = &int64{64}但它沒(méi)有用。
1 回答

莫回?zé)o
TA貢獻(xiàn)1865條經(jīng)驗(yàn) 獲得超7個(gè)贊
我認(rèn)為您不能,因?yàn)樵撝凳且粋€(gè)原始值,并且嘗試像下面這樣一次性完成將是語(yǔ)法錯(cuò)誤。它試圖獲取一個(gè)值的地址,所以這是不可能的。至少我不知道有什么可能的方法。
someInt := &int64(10) // would not compile
另一種選擇是編寫(xiě)一個(gè)函數(shù)來(lái)返回一個(gè)指向原語(yǔ)的指針,如下所示:
func NewIntPointer(value int) *int {
return &value
}
- 1 回答
- 0 關(guān)注
- 179 瀏覽
添加回答
舉報(bào)
0/150
提交
取消