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也發送改變
相關文章
相關標籤/搜索