Golang 中的数组是相同类型元素的编号序列。数组的大小是固定的。我们可以通过它们的索引访问元素。您可以声明一个大小为 n 且类型为 T 的数组,指定下面提到的这种方式。
var array[n]T
Go 没有内置函数将数组复制到另一个数组。有两种方法可以将一个数组复制到另一个数组:
- 按价值
- 引用
1. 按值复制:如果我们按值复制一个数组,然后对原始数组的值进行更改,则相同的更改将不会反映在原始数组的副本中。
2. 通过引用复制:如果我们通过引用复制一个数组,然后在原始数组中进行任何更改,那么它们将反映在创建的原始数组的副本中。
例子:
// Golang program to copy an array by value
// and reference into another array
package main
import "fmt"
func main() {
// original string
strArray := [3]string{"Apple", "Mango", "Guava"}
// data is passed by value
Arraybyval := strArray
// data is passed by reference
Arraybyref := &strArray
fmt.Printf("strArray: %v\n", strArray)
fmt.Printf("Arraybyval : %v\n", Arraybyval)
fmt.Printf("*Arraybyref : %v\n", *Arraybyref)
strArray[0] = "Watermelon"
fmt.Printf("After making changes")
fmt.Printf("strArray: %v\n", strArray)
fmt.Printf("Arraybyval: %v\n", Arraybyval)
fmt.Printf("*Arraybyref: %v\n", *Arraybyref)
}
输出:
strArray: [Apple Mango Guava]
Arraybyval : [Apple Mango Guava]
*Arraybyref : [Apple Mango Guava]
After making changesstrArray: [Watermelon Mango Guava]
Arraybyval: [Apple Mango Guava]
*Arraybyref: [Watermelon Mango Guava]