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