基本介紹:程序員
切片不只能夠使用len函數,還有cap函數來計算切片的容量;數組
切片在內存中的形式:數據結構
從該圖咱們能夠得出:app
切片使用的三種方式:ide
方式1和方式2的區別:函數
方式1是直接引用數組,這個數組是事先存在的,程序員是可見的;方式2經過make,make也會建立一個數組,是由切片在底層進行維護,對程序員是不可見的;3d
切片的遍歷:與數組同樣,也是有兩種;blog
切片使用的注意事項:內存
切片append底層原理分析:
(1)切片append本質上是對數組擴容;字符串
(2)go語言會建立一個新的數組(擴容後)
(3)將slice原來包含的元素拷貝到新的數組;
(4)slice從新引用到新數組;
(5)新數組是在底層來維護的,程序員不可見;
切片的拷貝操做:
切片使用copy內置函數完成拷貝;
intArr和intArr2空間是相互獨立的,相互之間不會影響;
若元素不夠,則只拷貝一部分;
string和切片的關係:
(1)string底層實現是一個byte數組,所以string也能夠進行切片;
(2)string是不可變的;
(3)若是要修改字符串,先要將string-->[]byte,或者[]rune-->修改-->重寫裝成string;要替換中文,用[]rune;