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 协议》,转载必须注明作者和本文链接
讨论数量: 0
(= ̄ω ̄=)··· 暂无内容!

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!