2013-07-11 34 views
7

Có một mẫu được thiết lập để nhận con trỏ tới các chữ không phải là tổng hợp không?Con trỏ tới ký tự không phải là tổng hợp

x := 5 
y := &x 

Mã trên hoạt động nhưng cực kỳ tiết lộ.

+0

Tôi không thấy những gì có thể được rút ngắn trong mã này. Bạn muốn con trỏ đến biến x? – topskip

+0

Tôi cũng không chắc chắn làm thế nào điều này có thể nhận được nhiều hơn nữa súc tích. –

+0

"Rất tiết lộ"? Tôi _never_ _ever_ đã phải viết những thứ như vậy ... – Volker

Trả lời

8

Nếu tôi hiểu đúng rằng điểm duy nhất của x là để phân bổ các int, tôi khuyên bạn nên một cái gì đó nhiều hơn "verbose":

y := new(int) 
*y = 5 

Tôi không thấy nhận được nó bất kỳ ngắn hơn so với những gì bạn có. Vì toán tử &requires toán hạng của nó là địa chỉ hoặc tổng hợp, bạn đang bị mắc kẹt khi đang làm gì đó để có địa chỉ hoặc bạn có thể làm những gì tôi đề xuất và tránh hoàn toàn &.

+2

Nếu đó là một loại đủ phổ biến, có thể quấn nó trong một chức năng với một cái gì đó như 'func intPtr (i int) * int {return & i} func main() { y: = intPtr (5) } ' http://play.golang.org/p/bIOUAua2b5 – losinggeneration

Các vấn đề liên quan