2013-07-11 7 views
7

Czy istnieje ustalony wzorzec uzyskiwania wskaźników do literałów niekompozytowych?Wskaźnik do niekompozytowego tekstu literackiego

x := 5 
y := &x 

Powyższy kod działa, ale jest strasznie rozwlekły.

+0

Nie widzę, co można skrócić w tym kodzie. Chcesz wskaźnik do zmiennej x? – topskip

+0

Nie jestem również pewien, jak to może być bardziej zwięzłe. –

+0

"Okropnie gadatliwy"? I _never_ _ever_ musiałem pisać takie rzeczy ... – Volker

Odpowiedz

8

Jeśli dobrze rozumiem, że jedynym punktem x jest przeznaczyć int, polecam coś jeszcze bardziej „gadatliwy”:

y := new(int) 
*y = 5 

nie widzę coraz to krótsza niż to, co masz. Operator &requires może być albo adresowalny, albo złożony, co oznacza, że ​​albo utknąłeś, robiąc to, co robisz, aby uzyskać coś adresowalnego, albo możesz zrobić to, co sugeruję i całkowicie uniknąć.

+2

Jeśli jest to typ dość częsty, możliwe jest zawinięcie go w funkcję z czymś takim, jak 'func intPtr (i int) * int {return & i} func main() { y: = intPtr (5) } ' http://play.golang.org/p/bIOUAua2b5 – losinggeneration