2013-07-11 14 views
7

Esiste uno schema stabilito per ottenere puntatori a valori letterali non compositi?Puntatore a letterale non composito

x := 5 
y := &x 

Il codice sopra riportato funziona ma è terribilmente dettagliato.

+0

Non vedo cosa può essere abbreviato in questo codice. Vuoi il puntatore alla variabile x? – topskip

+0

Non sono nemmeno sicuro di come questo possa essere molto più conciso. –

+0

"Awfully verbose"? Non ho mai dovuto scrivere tali cose ... – Volker

risposta

8

Se ho capito bene che l'unico punto di x è di destinare l'int, vi consiglio qualcosa di ancora più "verbose":

y := new(int) 
*y = 5 

non vedo ottenerlo qualsiasi più breve di quello che hai. Dato che l'operatore &requires è un operando indirizzabile o un letterale composito, sei bloccato a fare ciò che stai facendo per ottenere qualcosa di indirizzabile, oppure puoi fare ciò che suggerisco ed evitare del tutto lo &.

+2

Se è un tipo abbastanza comune, è possibile avvolgerlo in una funzione con qualcosa come 'func intPtr (i int) * int {return & i} func main() { y: = intPtr (5) } ' http://play.golang.org/p/bIOUAua2b5 – losinggeneration

Problemi correlati