go语言range语句中的值的坑
在range语句中生成的数据的值是真实集合元素的副本,它们不是原有元素的引用。这意味着更新这些值将不会
修改原来的数据,同时也意味着使用这些值的地址将不会得到原有数据的指针。
package main
import "fmt"
func main(){
data := []int{1,2,3}
for _,v := range data{
v *= 10 //通常数据项不会改变
}
fmt.Println(data) // [1 2 3]
}
如果需要更新原有集合中的数据,可使用索引操作符来获取
package main
import "fmt"
func main(){
data := []int{1,2,3}
for i,_ := range data{
data[i] *= 10
}
fmt.Println(data) // [10 20 30]
}
-------------------------------------------
个性签名:代码过万,键盘敲烂!!!
如果觉得这篇文章对你有小小的帮助的话,记得在右下角点个“推荐”哦,博主在此感谢!