GO-切片拷贝以及赋值

一.拷贝

package main

import "fmt"

func main(){
	//copy函数,把一个切片copy到另一个切片之上
	var a [1000]int=[1000]int{0,1,2,3,4,5}
    
	b:=a[:4]
	c:=make([]int,4,4)
	copy(c,b)
	fmt.Println(c)
    
	c[1]=3
	fmt.Println(a)
}
// copy是将索引部分和值部分都在内存开辟了新的控件复制了两份,a与C没有关联关系,c变a也不会发送变化

二.赋值

package main

import "fmt"

func main(){
	var a [1000]int=[1000]int{0,1,2,3,4,5}
	b:=a[:4]
	c:=b
	fmt.Println(c)
	c[1]=3
	fmt.Println(a)
}
//只在内存开辟了一个索引区域,复制了一份但是同样还是指向a,所有此时c发送改变a也发送改变
posted @ 2019-11-20 19:21  小小咸鱼YwY  阅读(4633)  评论(0编辑  收藏  举报