是否存在用于获取指向非复合文字的指针的既定模式?

x := 5
y := &x

上面的代码有效,但是非常冗长。

最佳答案

如果我正确理解x的唯一要点就是分配int,那么我建议您做些“更冗长”的事情:

y := new(int)
*y = 5

我认为没有比您拥有的更短的产品了。由于&运算符requires的操作数可以是可寻址的,也可以是复合文字,因此,您要么做您正在做的事情以获得可寻址的内容,要么可以执行我建议的操作,并完全避免&

10-04 17:40