给定一个看起来像的struct
type foo struct {
i *int
}
如果我想将i
设置为1,我必须
throwAway := 1
instance := foo { i: &throwAway }
有没有什么方法可以在一行中做到这一点,而不必给我的新i
值它自己的名称(在本例中为throwaway
)?
正如邮件列表中所指出的,您可以这样做:
func intPtr(i int) *int {
return &i
}
然后
instance := foo { i: intPtr(1) }
如果你必须经常做的话。intPtr
被内联(请参阅go build -gcflags '-m'
的输出),所以它应该几乎没有性能损失。
不,这不可能在一行中完成。