91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Go語言中的For循環常見問題的處理方式

發布時間:2021-09-04 09:18:55 來源:億速云 閱讀:140 作者:chen 欄目:編程語言

這篇文章主要講解了“Go語言中的For循環常見問題的處理方式”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“Go語言中的For循環常見問題的處理方式”吧!

For循環在我們日常編碼中可能用的很多。在很多業務場景中我們都需要用for循環處理。但golang中的for循環有一個大大大的坑,大家可否遇到。直接上代碼:

Go語言中的For循環常見問題的處理方式

我們寫一個測試類,定義一個切片數組,然后循環迭代每個元素,將元素的值放到另一個切片。循環finalArrays的時候按照我們的預期應該輸出1、2、3、4。但事與愿違,輸出的結果如下圖:

Go語言中的For循環常見問題的處理方式

懵逼了吧!為什么會出現這種奇怪的現象呢?這就是golang的循環變量的作用域導致的。

在golang的for循環中,循環內部創建的函數變量都是共享同一塊內存地址,for循環總是使用同一塊內存去接收循環中的的value變量的值。不管循環多少次,value的內存地址都是相同的。事實確實如此,我們輸出value的內存地址看下:

Go語言中的For循環常見問題的處理方式

所以,可以看到,整個4次循環過程中,所有變量值都是在0xc0000b8780這個地址上迭代的。4次循環都指向的是同一塊內存地址,最后一次賦值的操作變量的值是4,指向了這塊內存地址,所以前三次的值都變成了4。那我們怎么優化呢?我們只需要定義臨時變量。

Go語言中的For循環常見問題的處理方式

我們定義一個臨時變量tmp,將value的值賦給tmp,問題就解決了。

評論中很多同學說,例子不足以說明這個問題,我這里寫一段我們實際業務場景的代碼,大家看看。

Go語言中的For循環常見問題的處理方式

Bid結構體中的屬性我就不貼圖了。這種情況很多新手同學會犯,尤其是從java轉go的同學。

感謝各位的閱讀,以上就是“Go語言中的For循環常見問題的處理方式”的內容了,經過本文的學習后,相信大家對Go語言中的For循環常見問題的處理方式這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

平度市| 闸北区| 云安县| 兴安县| 衡阳县| 偃师市| 辰溪县| 庆安县| 靖边县| 海门市| 松潘县| 海口市| 巴里| 和硕县| 云南省| 临泉县| 山阳县| 乌兰浩特市| 双辽市| 上思县| 普兰县| 罗江县| 漳平市| 沁阳市| 常德市| 温州市| 五原县| 石景山区| 海宁市| 汉寿县| 逊克县| 霍林郭勒市| 西城区| 平凉市| 巴中市| 阿尔山市| 大兴区| 古丈县| 正定县| 汝城县| 晋州市|