12 range for

for range 循环 来遍历字符串 第七本【第五章】128~129页

1、for range 的底层其实是for len(range后面的原始内容),也即for range 是一次性拿到
range后面的全部内容和长度,然后再循环着慢慢享用;如果range后面是切片,由于切片实质
上是指向底层一个数组的指针,因此range一次性拿到的是一个指针和指针指向的底层数组的长
度,故如果指针指向的内容在遍历时发生了变化,那么虽然range的表面内容即那个指针还是地址
没变,但实质上每轮循环拿到的元素会随着变化,其他range后面是指针类型的,情形以此类推
以下为for range的底层代码:
for_range := range
len_temp := len(for_temp)
for index_temp = 0; index_temp < len_temp; index_temp ++ {
value_temp = for_temp[index_temp]
index = index_temp
value = value_temp
original body //值开发人员自己写的for k,v := range ** { } 大括号里的内容
}
其他类型数据的for range 一并参见自己朋友圈2020年8月4日转发的“通过两道面试题讲解GO for range …”

2、for k,v := range ** { } 中的k和v是被重复利用的,不会每次循环都重新申明一个也叫k和v的
变量,而是下一轮循环取到的k、v的值覆盖放到上一轮循环的k、v在内存中的空间里

3、参见自己朋友圈2020年8月4日转发的“通过两道面试题讲解GO for range …”

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值