数组与切片

whispermemory · · 14190 次点击
package main import "fmt" func main() { a := [...]int{3: 3} fmt.Println(a) b := append(a[:], 4, 5, 6) fmt.Println(b, len(b), cap(b)) change1(b) fmt.Println(b, len(b), cap(b)) b = change2(b) fmt.Println(b, len(b), cap(b)) } func change1(s []int) { s = append(s, []int{7, 8, 9, 10}...) fmt.Println("func change1:", s, len(s), cap(s)) } func change2(s []int) []int { s = append(s, []int{7, 8, 9, 10}...) fmt.Println("func change2:", s, len(s), cap(s)) return s } 输出: - [0 0 0 3] - [0 0 0 3 4 5 6] 7 8 - func change1: [0 0 0 3 4 5 6 7 8 9 10] 11 16 - [0 0 0 3 4 5 6] 7 8 - func change2: [0 0 0 3 4 5 6 7 8 9 10] 11 16 - [0 0 0 3 4 5 6 7 8 9 10] 11 16
#5
更多评论
polaris
社区,需要你我一同完善!
有几个错误: > 数组的创建使用 = []type{}创建 这种方式创建的是切片,创建数组必须指定长度,即[3]type{}这样的。 > 切片创建有两种 通过上面,自然[]type{}也是一种方式。 另外,代码最好自己编译成功过。如:```for i ,v in range c```,v定义了未使用等,我已帮修正了。
#1
whispermemory
一份代码不是变得越来越好,就是变得越来越差。
O(∩_∩)O~ 谢谢博主指正,否则我就误导大伙了, 罪过罪过
#2