下面这段代码很神奇

openset · · 1458 次点击
openset
Less is more!
2楼 <a href="/user/chenph" title="@chenph">@chenph</a> 问题是range map时会把动态追加的数据也遍历出来,只是部分。slice就没有这个问题,不会遍历追加的数据。map在遍历时动态修改了值,会打印出新值。切片也是这样,但是永远不会遍历追加的数据。 ```go s := []int{1, 2, 3} for i, v := range s { s = s[0:2] fmt.Println(&#34;i: &#34;, i, &#34;\tv: &#34;, v) } fmt.Println(s) ``` 运行输出结果: ``` i: 0 v: 1 i: 1 v: 2 i: 2 v: 3 [1 2] ```
#6
更多评论
The range expression x is evaluated once before beginning the loop
#2