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