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.如果拷贝切片小于被拷贝切片,只取前面的

 

 

排序

 

posted @ 2018-12-02 20:41  __Miracle  阅读(106)  评论(0编辑  收藏  举报