本篇內(nèi)容介紹了“Go語言Slice切片操作會使原數(shù)據(jù)出現(xiàn)混亂的原因是什么”的有關(guān)知識,在實(shí)際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領(lǐng)大家學(xué)習(xí)一下如何處理這些情況吧!希望大家仔細(xì)閱讀,能夠?qū)W有所成!
10余年的新干網(wǎng)站建設(shè)經(jīng)驗(yàn),針對設(shè)計(jì)、前端、開發(fā)、售后、文案、推廣等六對一服務(wù),響應(yīng)快,48小時(shí)及時(shí)工作處理。成都全網(wǎng)營銷的優(yōu)勢是能夠根據(jù)用戶設(shè)備顯示端的尺寸不同,自動調(diào)整新干建站的顯示方式,使網(wǎng)站能夠適用不同顯示終端,在瀏覽器中調(diào)整網(wǎng)站的寬度,無論在任何一種瀏覽器上瀏覽網(wǎng)站,都能展現(xiàn)優(yōu)雅布局與設(shè)計(jì),從而大程度地提升瀏覽體驗(yàn)。創(chuàng)新互聯(lián)建站從事“新干網(wǎng)站設(shè)計(jì)”,“新干網(wǎng)站推廣”以來,每個(gè)客戶項(xiàng)目都認(rèn)真落實(shí)執(zhí)行。
在學(xué)習(xí)Go語言的過程中,都知道可以通過切片操作來切割切片
例如
sl := make([]int,10) a = sl[1:] //表示取下標(biāo)為1開始的元素到最后 b = sl[:5] //表示取下標(biāo)從0開始的元素到下標(biāo)為4的元素 c = sl[1:5] //表示取下標(biāo)從1開始的元素到下標(biāo)為4的元素 d = sl[1:5:6] //表示取下標(biāo)從1開始的元素到下標(biāo)為4開始的元素,并且設(shè)置新切片的容量為6 *注意,這個(gè)操作想到于對原切片進(jìn)行來一個(gè)深拷貝,很關(guān)鍵
當(dāng)獲取切片通過[m:n]
進(jìn)行時(shí)獲取的切片都是基于原切片的底層數(shù)組的,即你該片新切片中某個(gè)數(shù)據(jù)時(shí),原切片的數(shù)據(jù)也會被改變,這通常不是我們想要的,當(dāng)然,如果使用append()
來對新切片進(jìn)行操作時(shí)如果沒有發(fā)生擴(kuò)容,那么原切片的值也會改變,所以,建議在進(jìn)行切片獲取操作的時(shí)候盡量使用[m:n:s]
這樣通常都是開辟一個(gè)新的空間來拷貝原切片的數(shù)據(jù),當(dāng)然如果進(jìn)行切片操作是要改變原切片,那么還是盡量使用[m:n]
,那么這樣會節(jié)省內(nèi)存開辟的空間
代碼演示:
a := [10]int{1, 2} i := a[:6] y := []int{3,4} fmt.Printf("a->%d,a->%v\n", cap(a), a) fmt.Printf("i->%d,i->%v\n", cap(i), i) fmt.Printf("y->%d,y->%v\n", cap(y), y) fmt.Println("==============================") //i[0]=100 //fmt.Printf("a->%d,a->%v\n", cap(a), a) //fmt.Printf("i->%d,i->%v\n", cap(i), i) //fmt.Printf("y->%d,y->%v\n", cap(y), y) //fmt.Println("==============================") i = append(i, y...) fmt.Printf("a->%d,a->%v\n", cap(a), a) fmt.Printf("i->%d,i->%v\n", cap(i), i) fmt.Printf("y->%d,y->%v\n", cap(y), y)
結(jié)果:
a->10,a->[1 2 0 0 0 0 0 0 0 0] i->10,i->[1 2 0 0 0 0] y->2,y->[3 4] ============================== a->10,a->[1 2 0 0 0 0 3 4 0 0] i->10,i->[1 2 0 0 0 0 3 4] y->2,y->[3 4]
“Go語言Slice切片操作會使原數(shù)據(jù)出現(xiàn)混亂的原因是什么”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識可以關(guān)注創(chuàng)新互聯(lián)網(wǎng)站,小編將為大家輸出更多高質(zhì)量的實(shí)用文章!