2013-07-11 41 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