Day 2

原題目


下面這段代碼輸出什么,說(shuō)明原因。

func main() {
    slice := []int{0,1,2,3} 
    m := make(map[int]*int) 
    for key,val := range slice {
        m[key] = &val     
    } 
     for k,v := range m {
        fmt.Println(k,"->",*v)
     }
}

嗯,這道題的結(jié)果是

0 -> 3
1 -> 3
2 -> 3
3 -> 3

因?yàn)閒or range 循環(huán)的時(shí)候會(huì)將遍歷的元素賦值給一個(gè)臨時(shí)變量即val,盡管每次循環(huán)的過(guò)程中val都有不同的取值,但在for循環(huán)語(yǔ)句內(nèi),它自始自終都是同一個(gè)變量,因此它的地址是不會(huì)發(fā)生改變的,所以字典m中的鍵值對(duì)實(shí)際都指向同一個(gè)地址,而這個(gè)地址最后被賦值為3。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • NOTE:文章中的代碼縮進(jìn)不知道怎么搞,直接粘貼使用會(huì)報(bào)錯(cuò) 學(xué)習(xí)地址 Python高級(jí)特征 切片Slice 作用對(duì)...
    fangmusan閱讀 279評(píng)論 0 0
  • 一、認(rèn)識(shí)python 1.常用快捷鍵(不只在python中有效): Ctrl+/ 添加注釋/取消注釋 (盡量注釋自...
    雨雨雨90閱讀 759評(píng)論 0 0
  • 一、基本知識(shí)? ? 1.python屬于解釋型語(yǔ)言;解釋型語(yǔ)言,是在運(yùn)行的時(shí)候?qū)⒊绦蚍g成機(jī)器語(yǔ)言,所以運(yùn)行速度相...
    我才是鱷魚(yú)寶寶閱讀 339評(píng)論 0 0
  • Day 2 基礎(chǔ)語(yǔ)法 1. 注釋 1.1 什么是注釋 注釋是代碼中不參與編譯執(zhí)行的部分,專門用來(lái)對(duì)程序解釋和說(shuō)明...
    曉曉_007f閱讀 140評(píng)論 0 0
  • 聽(tīng)了5遍樊登與古典老師說(shuō)《躍遷》的解讀音頻,我感覺(jué)這本書(shū)還是沒(méi)吃透,相信以后還得再聽(tīng)讀多幾遍,先來(lái)總結(jié)下現(xiàn)在的新感...
    海南小帥閱讀 215評(píng)論 2 6

友情鏈接更多精彩內(nèi)容