go语言数组的拷贝

时间:2022-05-05
本文章向大家介绍go语言数组的拷贝,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

go语言的数组与c语言的数据有一点不太一样的地方,go语言的赋值是值拷贝

package main  
 
import "fmt"  
 
func main() {  
    var ages [4]int = [4]int{1, 2, 3, 5}  
    var b = ages  
    b[0]++  
    fmt.Println(ages)  
    fmt.Println(b)  
}  

输出的结果是:

[1 2 3 5]


[2 2 3 5]

要想使ages改变时,b也跟着改变可以使用指针

package main  
import "fmt"  
func main() {  
    var ages [4]int = [4]int{1, 2, 3, 5}  
    var b = &ages  
    b[0]++  
    fmt.Println(ages)  
    fmt.Println(*b)  
}  

输出结果:

[2 2 3 5]


[2 2 3 5]

也可以使用切片,因为数组切片的本质就是指向数组的指针

package main  
import "fmt"  
func main() {  
    var ages []int = []int{1, 2, 3, 5}  
    var b = ages  
    b[0]++  
    fmt.Println(ages)  
    fmt.Println(b)  
}  

输出结果:

[2 2 3 5]


[2 2 3 5]

注:切片与切片之间的赋值,为值的复制