日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷解決方案
Go語言的中的For循環(huán)之大坑

For循環(huán)在我們?nèi)粘>幋a中可能用的很多。在很多業(yè)務(wù)場(chǎng)景中我們都需要用for循環(huán)處理。但golang中的for循環(huán)有一個(gè)大大大的坑,大家可否遇到。直接上代碼:

成都創(chuàng)新互聯(lián)專注于辛集網(wǎng)站建設(shè)服務(wù)及定制,我們擁有豐富的企業(yè)做網(wǎng)站經(jīng)驗(yàn)。 熱誠(chéng)為您提供辛集營(yíng)銷型網(wǎng)站建設(shè),辛集網(wǎng)站制作、辛集網(wǎng)頁設(shè)計(jì)、辛集網(wǎng)站官網(wǎng)定制、微信小程序定制開發(fā)服務(wù),打造辛集網(wǎng)絡(luò)公司原創(chuàng)品牌,更為您提供辛集網(wǎng)站排名全網(wǎng)營(yíng)銷落地服務(wù)。

我們寫一個(gè)測(cè)試類,定義一個(gè)切片數(shù)組,然后循環(huán)迭代每個(gè)元素,將元素的值放到另一個(gè)切片。循環(huán)finalArrays的時(shí)候按照我們的預(yù)期應(yīng)該輸出1、2、3、4。但事與愿違,輸出的結(jié)果如下圖:

懵逼了吧!為什么會(huì)出現(xiàn)這種奇怪的現(xiàn)象呢?這就是golang的循環(huán)變量的作用域?qū)е碌摹?/p>

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

所以,可以看到,整個(gè)4次循環(huán)過程中,所有變量值都是在0xc0000b8780這個(gè)地址上迭代的。4次循環(huán)都指向的是同一塊內(nèi)存地址,最后一次賦值的操作變量的值是4,指向了這塊內(nèi)存地址,所以前三次的值都變成了4。那我們?cè)趺磧?yōu)化呢?我們只需要定義臨時(shí)變量。

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

評(píng)論中很多同學(xué)說,例子不足以說明這個(gè)問題,我這里寫一段我們實(shí)際業(yè)務(wù)場(chǎng)景的代碼,大家看看。

Bid結(jié)構(gòu)體中的屬性我就不貼圖了。這種情況很多新手同學(xué)會(huì)犯,尤其是從java轉(zhuǎn)go的同學(xué)。


網(wǎng)站標(biāo)題:Go語言的中的For循環(huán)之大坑
轉(zhuǎn)載來于:http://m.5511xx.com/article/dpeosos.html