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]
注:切片與切片之間的賦值,爲值的複製