我有一个 []Struct 类型的结构数组。当我以表格形式覆盖它时:for i, val := range mystructarray我知道 val 是一个局部变量,其中包含 mystructarray[i] 的副本。有没有比这更好的遍历 mystructarray 地址的方法:for i := range mystructarray{ valptr = &mystructarray[i]}?
1 回答
慕婉清6462132
TA贡献1804条经验 获得超2个赞
在接收指向切片内容的指针时无法进行迭代(当然,除非它是一个指针切片)。
你的例子是最好的方法:
for i := range mySlice {
x = &mySlice[i]
// do something with x
}
但是请记住,如果您的结构不是很大,并且您不需要通过指针对它们进行操作,那么复制结构可能会更快,并为您提供更清晰的代码。
- 1 回答
- 0 关注
- 165 浏览
添加回答
举报
0/150
提交
取消