Go语言基础之使用range循环迭代slice

文档链接:http://www.topgoer.com/go%E5%9F%BA%E7%A1%80/Slice%E5%BA%95%E5%B1%82%E5%AE%9E%E7%8E%B0.html

页面最下说明了使用range循环切片有一个需要注意的问题:

Go语言基础之使用range循环迭代slice

 

 Go语言基础之使用range循环迭代slice

 

 根据上述结论分析一下下面这道面试题

Go语言基础之使用range循环迭代slice

 

 输出结果:

Go语言基础之使用range循环迭代slice

 

 

stus是一个结构体slice,使用range循环时拿到的stu是slice里的值拷贝,即stu的值不同但通过&stu获取到的是同一个地址,即map类型m的值存储的地址都相同,当循环结束,该地址对应的是stus的最后一个值即{name:"博客",age:28},则m的值均为{name:"博客",age:28}

Go语言基础之使用range循环迭代slice

 

 Go语言基础之使用range循环迭代slice

Go语言基础之使用range循环迭代slice

上一篇:python生成器与迭代器


下一篇:如何在苹果MacBook Pro上打开和使用Touch Bar Zoom?