1.使用方式
數(shù)組和slice長的很像,操作方式也都差不多壹店,并且slice包含了數(shù)組的基本的操作方式,如下標芝加、range循環(huán)硅卢,還有一些如len()則是多種類型共用,所以根據(jù)操作根本搞不清數(shù)組和切片的區(qū)別藏杖,能夠看出區(qū)別的地方主要看如何聲明的将塑。
數(shù)組的聲明方式很單一,通常就是下面這樣:
array1 := [5]int{1, 2, 3, 4, 5}
array2 := [5]int{}
slice的聲明方式就非常多樣了蝌麸,如前面介紹的幾種:
var slice1 = []int{1, 2, 3, 4, 5}
var slice2 = make([]int, 0, 5)
var slice3 = make([]int, 5, 5)
var slice4 = make([]int, 5)
加上對數(shù)組的切片和append操作都會產(chǎn)生數(shù)組切片(slice)
2.值傳遞or引用傳遞
func arrayModify(array [5]int) {
????newArray := array
????newArray[0] = 88
}
func sliceModify(slice []int) {
????newSlice := slice
????newSlice[0] = 88
}
func main() {
????array := [5]int{1, 2, 3, 4, 5}
????slice := []int{1, 2, 3, 4, 5}
????arrayModify(array)
????sliceModify(slice)
????fmt.Println(array)
????fmt.Println(slice)
}
輸出
[1?2?3?4?5]
[88?2?3?4?5]