golang range 遍历
发布时间:2020-12-16 18:04:15 所属栏目:大数据 来源:网络整理
导读:问题描述: 遍历一个数组,修改其中的值: type MyTest struct { X int }arr := make ([]MyTest ,0 ,20 ) for k,v := range arr{ v.X = Y} 期待输出,数组中所有的X均被修改成Y 实际输出,数组中所有的X均未发生改变 问题分析 在Go的for…range循环中,Go始
问题描述:遍历一个数组,修改其中的值: type MyTest struct {
X int
}
arr := make([]MyTest,0,20)
for k,v := range arr{
v.X = Y
}
期待输出,数组中所有的X均被修改成Y 问题分析在Go的for…range循环中,Go始终使用值拷贝的方式代替被遍历的元素本身,简单来说,就是for…range中那个value,是一个重复使用的值拷贝,而不是元素本身。不能通过&进行修改某个属性。 解决方案for i,v := range arr{ arr[i].X = Y } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |