Go之路(十三):数组与切片
数组与切片
数组:
二维数组的遍历
package main import( "fmt" ) func arraytest(){ var a = [2][5]int{{1,2,3,4,5},{6,7,8,9,10}} for _ , v := range a{ for _,vv := range v { fmt.Print(vv) } fmt.Println() } } func main(){ arraytest() }
切片:
package main import( "fmt" ) func testslice(){ var a [5]int = [5]int{1,2,3,4,5} b := a[1:] fmt.Println(b) b = append(b, 10) b = append(b, 10) b = append(b, 10) b = append(b, 10) fmt.Println(b) fmt.Println(len(b)) fmt.Println(cap(b)) fmt.Println("------") fmt.Printf("%p with a", &a) fmt.Println() fmt.Printf("%p with b", b) } func main() { testslice() }
切片的拷贝
package main import( "fmt" ) func testslice(){ var a = []int{1,2,3,4,5} b := make([]int,5) copy(b,a) fmt.Printf("%p",b) fmt.Println() fmt.Printf("%p",&a[0]) fmt.Print(b) } func main() { testslice() }
1.切片的拷贝是重新拷贝一份,两者的地址不一样
2.如果拷贝切片小于被拷贝切片,只取前面的
排序