1
在此示例中,您可以看到循環遍歷對象列表並將它們放入指針結構數組中,最終將相同的條目多次放入數組中。在Go中處理循環中指針結構的正確方法是什麼?
http://play.golang.org/p/rICA21kFWL
一個可能的解決這個問題是使一個新的字符串和衝刺串出的環形串入新的字符串。這似乎很愚蠢。
什麼是處理這個問題的地道正確的方法?
在此示例中,您可以看到循環遍歷對象列表並將它們放入指針結構數組中,最終將相同的條目多次放入數組中。在Go中處理循環中指針結構的正確方法是什麼?
http://play.golang.org/p/rICA21kFWL
一個可能的解決這個問題是使一個新的字符串和衝刺串出的環形串入新的字符串。這似乎很愚蠢。
什麼是處理這個問題的地道正確的方法?
如果我理解正確的,你只是想指向原始數組中的相應的字符串指針數組,你總是可以做到這一點
Here's你去操場的變化上面勾勒出來。
這將假設我正在測試的東西是可索引的。不幸的是,它不是 - 我正在使用Next()從一個sql結果對象中提取數據。我可以首先將sql結果轉儲到一個常規的非指針數組中,但是這似乎也沒有慣用的正確性。 – Case
在這種情況下,您可能需要解決類似這樣的問題:http://play.golang.org/p/ssLVP4aCsj,只需將您感興趣的值複製到某個臨時變量並獲取它的指針即可。 – panmari
順便提一句,字符串已經在Go中引用了不可變數據,所以如果您只是使用'[]字符串'而不是'[] *字符串'來複制它們就會同樣便宜。也可以參考:Go中的'[] byte'和其他一些重要類型的片段;請參閱http://research.swtch.com/godata瞭解一些結構的描述,以及http://stackoverflow.com/questions/23542989/best-practice-returning-structs-in-go/23551970爲我最好的去在總結什麼時候你應該/不應該使用指針。 – twotwotwo