是否有一个快捷方式可以将变量分配给指针而不先在单独的行中创建变量?

时间:2015-10-12 21:53:09

标签: go

如果我有这样的结构:

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}

但它不起作用。

1 个答案:

答案 0 :(得分:1)

我不认为你可以,因为该值是原始的,并尝试像下面这样一次性执行它将是语法错误。它试图获得的地址,因此无法实现。至少我不知道可能的方式。

someInt := &int64(10) // would not compile 

另一种选择是编写一个函数来返回一个指向原语的指针,如下所示:

func NewIntPointer(value int) *int {
  return &value
}