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也发送改变


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM