欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

GO-切片拷贝以及赋值

程序员文章站 2022-06-07 11:30:20
一.拷贝 二.赋值 ......

一.拷贝

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