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

时间:2015-04-08 16:48:51

标签: go

给出struct看起来像

type foo struct {
 i *int
}

如果我想将i设置为1,我必须

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

有没有办法在一行中执行此操作而无需为我的新i值提供自己的名称(在本例中为throwaway)?

2 个答案:

答案 0 :(得分:8)

正如mailing list所指出的,你可以这样做:

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

然后

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

如果你经常这样做的话。 intPtr被内联(请参阅go build -gcflags '-m'输出),因此它应该没有性能损失。

答案 1 :(得分:5)

不能在一行中做到这一点。

相关问题