您好,登錄后才能下訂單哦!
1、切片可以修改大小
2、切片的拷貝不是單純值的拷貝,一個(gè)切片指向了一個(gè)數(shù)組
1 | //切片的聲明1 //nil |
1 |
|
1 | package main |
1 |
|
數(shù)組的拷貝是副本拷貝。對于副本的改變不會(huì)影響到
切片的拷貝很特殊,切片的副本仍然指向了相同的數(shù)組。所以,對于副本的修改會(huì)影響到相同的數(shù)組。
下面的例子說明
1 | package main |
1 | numbers := make([]int, 0, 20) |
毫無疑問,創(chuàng)建新的目標(biāo)切片就會(huì)有新的指向的數(shù)組。數(shù)組的copy是對于不同的數(shù)組的值的拷貝
1 | //創(chuàng)建目標(biāo)切片 |
1 | package main |
理解了下面代碼到底輸出什么,就理解了切片的原理。
1 | package main |
輸出結(jié)果:
1 | level: 5 slice: [0 1 2 3 4 5] |
參考資料:
https://dave.cheney.net/2018/07/12/slices-from-the-ground-up
本文鏈接: https://dreamerjonson.com/2018/11/20/golang-13-slice/
版權(quán)聲明: 本博客所有文章除特別聲明外,均采用 CC BY 4.0 CN協(xié)議 許可協(xié)議。轉(zhuǎn)載請注明出處!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。