golang中数组与切片的区别
Posted timliudream
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了golang中数组与切片的区别相关的知识,希望对你有一定的参考价值。
初始化:数组需要指定大小,不指定也会根据初始化的自动推算出大小,不可改变
数组:
a := [...]int{1,2,3} a := [3]int{1,2,3}
切片:
a:= []int{1,2,3} a := make([]int, 5) a := make([]int, 5, 10)
函数传递:数组需要明确指定大小,切片不需要。数组是值传递,切片是地址传递
numbers2 := [...]int{1, 2, 3, 4, 5, 6} maxIndex2 := len(numbers2) - 1 for i, e := range numbers2 { if i == maxIndex2 { numbers2[0] += e } else { numbers2[i+1] += e } } fmt.Println(numbers2) numbers3 := []int{1, 2, 3, 4, 5, 6} maxIndex3 := len(numbers3) - 1 for i, e := range numbers3 { if i == maxIndex3 { numbers3[0] += e } else { numbers3[i+1] += e } } fmt.Println(numbers3)
输出:
[7 3 5 7 9 11] [22 3 6 10 15 21]
以上是关于golang中数组与切片的区别的主要内容,如果未能解决你的问题,请参考以下文章