|版权声明:本文为博主原创文章,未经博主允许不得转载。博客地址:https://blog.csdn.net/sgsgy5
在go语言中,遍历有两种方法,一种就是for的普通方法,还有一种就是for range的遍历,但是在使用for range时,如果使用不当,就会出现一些问题比如我们下面先来看一个例题
package main
import "fmt"
type Student struct{
Name string
Age int
} //一个学生结构体
func main(){
m:=make(map[string]*Student) //声明一个映射
stus:=[]Student{
{

在Go语言中,使用for range遍历结构体切片时可能会遇到陷阱,由于临时变量stu的地址不变,导致遍历后映射m中的所有值都指向最后一个元素。解决办法是在for range内部创建新的变量接收stu的值,再取新变量的地址进行赋值,以避免地址冲突,确保遍历结果正确。
最低0.47元/天 解锁文章
4017

被折叠的 条评论
为什么被折叠?



