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


浙公网安备 33010602011771号