分配int指针值的简单方法



给定一个看起来像的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'的输出),所以它应该几乎没有性能损失。

不,这不可能在一行中完成。

最新更新