给出struct
看起来像
type foo struct {
i *int
}
如果我想将i
设置为1,我必须
throwAway := 1
instance := foo { i: &throwAway }
有没有办法在一行中执行此操作而无需为我的新i
值提供自己的名称(在本例中为throwaway
)?
答案 0 :(得分:8)
正如mailing list所指出的,你可以这样做:
func intPtr(i int) *int {
return &i
}
然后
instance := foo { i: intPtr(1) }
如果你经常这样做的话。 intPtr
被内联(请参阅go build -gcflags '-m'
输出),因此它应该没有性能损失。
答案 1 :(得分:5)
不能在一行中做到这一点。