注意:遮挡不是替换
在一个for循环中,如果我们在循环体内部声明了一个与初始化语句中的变量同名的变量,那么这个新变量会“遮挡”外部的同名变量。但这种遮挡只在声明它的那一行代码开始,直到循环体结束的范围内有效。当下一次循环开始时,外部的同名变量会重新显现,并继续使用for声明语句中的值。
可以把for循环中的变量i想象成一个房间里的灯泡,而i := i这一行代码就像是在房间的一角放了一个遮挡灯光的屏风。
for i := 0; i < 3; i++ { fmt.Println("before:", i) i := i i = 100 fmt.Println("after:", i) }
输出:
before: 0 after: 100 before: 1 after: 100 before: 2 after: 100
到此这篇关于Go中for循环的遮挡效应的文章就介绍到这了,更多相关内容请搜索服务器之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持服务器之家!
原文地址:https://blog.csdn.net/qq_35760825/article/details/132205273