go for range 遍历

 for range 中会为 i,v 申请各申请一块内存地址存储临时变量,遍历的时候后面的值会覆盖前面的
例子:
package main

import (
    "fmt"
)


func main() {
    m := make(map[int]int)
    sliceList := []int{1,2,3,4}
    // for range 中会为 i,v 申请各申请一块内存地址存储临时变量,遍历的时候后面的值会覆盖前面的
    for i,v:= range sliceList{

        fmt.Printf("i %p \n",&i)
        fmt.Printf("k %p \n",&v)
        m[*(&i)]=*(&v)
    }

    for k, v := range m {
        fmt.Println(k, ":", v)
    }

}

 

执行结果:

 

posted on 2022-10-04 09:42  running-fly  阅读(24)  评论(0编辑  收藏  举报

导航