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