數(shù)組和切片的區(qū)別
切片在函數(shù)中的傳輸就是傳輸?shù)闹羔槪詫η衅男薷模瑫е虑衅讓拥臄?shù)據(jù)被修改
數(shù)組在函數(shù)間的傳輸默認的是值傳輸漫贞,對于數(shù)組的修改瑟匆,不會導致源數(shù)據(jù)的修改闽坡,所以想要修改源數(shù)據(jù)的內(nèi)容,需要傳輸?shù)胶瘮?shù)的是數(shù)組的地址愁溜,
func modify(d1 []int) {
d1[0] = 10
}
func modify2(d1 [4]int) {
d1[0] = 10
}
func modify3(d1 *[4]int) {
d1[0] = 10
}
func main() {
slice1 := []int{1, 2, 3, 4}
modify(slice1)
fmt.Println(slice1) //[10 2 3 4]
array := [4]int{1, 2, 3, 4}
modify2(array)
fmt.Println(array)? //[1 2 3 4]
array2 := [4]int{1, 2, 3, 4}
modify3(&array2)
fmt.Println(array2) //[10 2 3 4]
}