pointers - 在 Go 的循环中处理指针结构的正确方法是什么?

标签 pointers struct go

在这个关于 go playground 的示例中,您可以看到循环遍历对象列表并将它们放入指针结构数组最终会多次将相同的条目放入数组中。

http://play.golang.org/p/rICA21kFWL

该问题的一个可能解决方案是制作一个新字符串并将该字符串从循环字符串中冲刺到新字符串中。虽然这看起来很愚蠢。

处理这个问题的惯用正确方法是什么?

最佳答案

如果我理解正确并且你只是想要一个指向原始数组中相应字符串的指针数组,你总是可以这样做

# choose correct size from beginning to avoid costly resize
o := make([]*string, len(f))

# iterate only over index
for i := range f {
    o[i] = &f[i].username
}

Here's您的 go Playground ,上面列出了更改。

关于pointers - 在 Go 的循环中处理指针结构的正确方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24704527/

相关文章:

go - 如何使用golang在请求 header 中保持关键大小写敏感?

go - 我正在运行一个受 CPU 限制的 WASM 函数。如何防止它阻塞 UI 线程?

C——操作指针

go - 在实例生成期间修改结构字段

c - 二维数组转化为指针

c++ - C++ 和 cin.getline 的问题

c++ - 错误 : Expression Must have a pointer to class C++

angular - 使用 angular web 应用程序调用 mongo/golang db 时被 CORS 策略错误阻止

C - 链表 - 删除头部 - 段错误

c - 将变量分配给结构体数组的成员时出现预期标识符或 '(' 错误