一尘不染

分配int指针值的简单方法?

go

给定一个struct看起来像

type foo struct {
 i *int
}

如果要设置i为1,则必须

throwAway := 1
instance := foo { i: &throwAway }

有没有办法在一行中执行此操作而不必给我新i值它自己的名字(在这种情况下throwaway)?


阅读 182

收藏
2020-07-02

共1个答案

一尘不染

邮件列表中所述,您可以执行以下操作:

func intPtr(i int) *int {
    return &i
}

然后

instance := foo { i: intPtr(1) }

如果您必须经常这样做。intPtr内联(请参见go build -gcflags '-m'输出),因此它应该几乎没有性能损失。

2020-07-02