2013-07-11 37 views
7

是否有获取指向非复合文字的指针的建立模式?指向非复合文字的指针

x := 5 
y := &x 

上述代码有效,但非常详细。

+0

我不明白在这段代码中可以缩短什么。你想要指向变量x的指针? – topskip

+0

我也不确定这可以得到多简洁。 –

+0

“非常详细”?我_never_ _ever_不得不写这样的东西... – Volker

回答

8

如果我理解正确的是的x唯一的一点是要分配int,我建议一些更“详细”:

y := new(int) 
*y = 5 

我没有看到它得到任何比你有什么短。由于&运算符requires其操作数可以是可寻址的或复合文字,因此您要么停留在做你正在做的事情来获得可寻址的东西,要么可以按照我的建议做,并且完全避免使用&

+2

如果它是一个普通的类型,可以用类似于 的函数来包装它,func intPtr(int)* int {return&i} func main() y:= intPtr(5) }' http://play.golang.org/p/bIOUAua2b5 – losinggeneration