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

马谦马谦马谦 Golang1 8841字数 437阅读1分27秒阅读模式

一、用法

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

结果:

二、注意事项

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

示例一:

示例二:

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

结果:

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

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

 最后更新:2017-12-5
马谦马谦马谦
  • 本文由 马谦马谦马谦 发表于 2017年8月20日18:35:41
  • 转载请务必保留本文链接:https://www.dyxmq.cn/program/code/golang/golang-range.html
解决gvm工具无法下载安装包的问题 Golang

解决gvm工具无法下载安装包的问题

GVM(Go Version Manager)是一款用于管理和切换不同Go语言版本的工具。它允许用户在同一台计算机上轻松安装、使用和管理多个Go版本,同时还能确保项目之间的依赖关系井然有序。GVM的主...
国内几个优质的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:
确定

拖动滑块以完成验证