如果我有这样的结构:
type Message struct {
Id int64
Message string
ReplyTo *int64
}
然后如果我确实像这样创建了这个结构的实例:
var m Message
m.Id = 1
m.Message = "foo bar yo"
var replyTo = int64(64)
m.ReplyTo = &replyTo
然后它会起作用。
但我想知道最后一步是否有捷径?
我尝试过这样的事情:
m.ReplyTo = &int64{64}
但它不起作用。
答案 0 :(得分:1)
我不认为你可以,因为该值是原始的,并尝试像下面这样一次性执行它将是语法错误。它试图获得值的地址,因此无法实现。至少我不知道可能的方式。
someInt := &int64(10) // would not compile
另一种选择是编写一个函数来返回一个指向原语的指针,如下所示:
func NewIntPointer(value int) *int {
return &value
}