go 语言的数组:
1、长度固定
2、长度是数组类型的一部分
3、值类型(参数以复制的方式传递)
// 值传递例子
package main
import "fmt"
func test(b [3]int){
fmt.Printf("\nb 地址:%p",&b)
}
func main() {
fmt.Println("Hello, World!")
var a = [3]int{1,2,3}
fmt.Printf("a 地址:%p",&a)
a[2] = 4
test(a)
}
// 输出
Hello, World!
a 地址:0xc00008a000
b 地址:0xc00008a040
// 数组引用传参,使用变量地址
package main
import "fmt"
func test(b *[3]int){
b[2] = 5
fmt.Printf("\nb 地址:%p",b)
}
func main() {
fmt.Println("Hello, World!")
var a = [3]int{1,2,3}
fmt.Printf("a 地址:%p",&a)
a[2] = 4
test(&a)
fmt.Printf("\n")
fmt.Println(a)
}
// 输出
Hello, World!
a 地址:0xc000092000
b 地址:0xc000092000
[1 2 5]
注意数组的传参,一定需要确定的长度,长度也是数组类型的一部分
这里还需注意闭包函数的,传参是引用传递