go-arr扩展
1. 数组是多个相同类型数据的组合,一个数组声明之后,长度是固定的,不能动态变化
var numArr01 [3]int = [3]int{1,2,3}
numArr01[3]=4
fmt.Println("numArr01=", numArr01)
运行结果:
command-line-arguments
invalid array index 3 (out of bounds for 3-element array)
var numArr01 [3]int = [3]int{1,2,3}
numArr01[1]=4.4
fmt.Println("numArr01=", numArr01)
运行结果:
command-line-arguments
constant 4.4 truncated to integer
从上面两个例子可以看出,数组的长度和值类型是不可以随意改变的,数组中的元素可以是任何数据类型,包括值类型和引用类型,但是在一个数组中不能混用。
2.Go 的数组属值类型,在默认情况下是值传递,因此会进行值拷贝。数组间不会相互影响
func main() {
arr := [3]int{11,22,33}
test(arr)
fmt.Println(arr)
}
func test(arr [3]int) {
arr[0] = 88
}
[11 22 33]
如想在其它函数中,去修改原来的数组,可以使用引用传递 (指针方式)
func main() {
arr := [3]int{11,22,33}
test(&arr)
fmt.Println(arr)
}
func test(arr *[3]int) {
(*arr)[0] = 88
}
[88 22 33]
本作品采用《CC 协议》,转载必须注明作者和本文链接
推荐文章: