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

马谦马谦马谦 2017年8月20日18:35:41 1
文章最后编辑于:2017-12-5 23:15:14

一、用法

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

结果:

二、注意事项

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

示例一:

示例二:

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

结果:

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

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

本文共执行44次查询,耗时0.276秒!
马谦马谦马谦

发表评论

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