Go每日一题(2)

 

引用新的元素的副本,而不是元素直接引用

 

package main

import(
    "fmt"
)

func main(){
    // fmt.Println("Hello World")
    
    slice := []int{0,1,2,3}
    m := make(map[int]*int)
    
    for k,v := range slice {
        
        // wrong sample 引用同一变量地址
        // m[k] = &v
        
        // correct sample, 使用新变量地址
        val := v
        m[k] = &val
    }
    
    for k,v := range m {
        fmt.Println(k, "->", *v)
    }
}

 

posted @ 2019-12-26 18:09  Marksion  阅读(127)  评论(0编辑  收藏  举报