golang切片的引用与复制


package main

import "fmt"

func main() {

	// 设置元素数量为1000
	const elementCount = 1000

	// 预分配足够多的元素切片
	srcData := make([]int, elementCount)

	// 将切片赋值
	for i := 0; i < elementCount; i++ {
		srcData[i] = i
	}

	// 引用切片数据
	refData := srcData

	// 预分配足够多的元素切片
	copyData := make([]int, elementCount)
	// 将数据拷贝到新的切片空间中
	copy(copyData, srcData)

	// 修改原数据的第一个元素
	srcData[0] = 999

	// 打印引用切片的第一个元素
	fmt.Println(refData[0])//999

	// 打印拷贝切片的第一个和最后元素
	fmt.Println(copyData[0])//仍然是0

	// 拷贝原数据从4到6(不包含)
	copy(copyData, srcData[4:6])

	for i := 0; i < 10; i++ {
		fmt.Printf("%d ", copyData[i])//4 5 2 3 4 5 6 7 8 9 
	}
}

  


免责声明!

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



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