Golang中range的使用方法及注意事项

马谦马谦马谦
马谦马谦马谦
马谦马谦马谦
606
文章
12
评论
2017年8月20日18:35:41 1

一、用法

range类似迭代器,可以遍历数组,字符串,map等等,对象的不同,返回的结果也不同。

结果:

二、注意事项

1. range会复制对象,而不是不是直接在原对象上操作。

示例一:

示例二:

2. 使用range迭代遍历引用类型时,底层的数据不会被复制:

结果:

因为切片的内部结构为struct slice{*point, len, cap}。

数据部分是一个指针,指向地址,复制对象的时候只是把指针的值复制了,而不是重新拷贝一块新的内存再把值放进去,所以修改的时候还是修改的原来的值,和C++里的浅拷贝一样。

马谦马谦马谦
  • 本文由 发表于 2017年8月20日18:35:41
  • 转载请务必保留本文链接:https://www.dyxmq.cn/program/code/golang/golang-range.html
国内几个优质的Go Module代理仓库服务 Golang

国内几个优质的Go Module代理仓库服务

一、简介 go module公共代理仓库,代理并缓存go模块。你可以利用该代理来避免DNS污染导致的模块拉取缓慢或失败的问题,加速你的构建。 简单来说就是国内访问被墙,go get无法在线获取到仓库,...
匿名

发表评论

匿名网友 填写信息

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: