重寫Redis中間件實(shí)戰(zhàn)
深入Go底層原理關(guān)于切片和數(shù)組怎么選擇?接下來好好討論討論這個(gè)問題。
在 Go 中,與 C 數(shù)組變量隱式作為指針使用不同,Go 數(shù)組是值類型,賦值和函數(shù)傳參操作都會復(fù)制整個(gè)數(shù)組數(shù)據(jù)。
func main() {
? ? arrayA := [2]int{100, 200}
? ? var arrayB [2]int
? ? arrayB = arrayA
? ? fmt.Printf("arrayA : %p , %v\n", &arrayA, arrayA)
? ? fmt.Printf("arrayB : %p , %v\n", &arrayB, arrayB)
? ? testArray(arrayA)
}
func testArray(x [2]int) {
? ? fmt.Printf("func Array : %p , %v\n", &x, x)
}
標(biāo)簽: