注释写的很详细哦,慢慢看
package main
import "fmt"
func main() {
var a [2]int //没有赋值可以这么写,默认0
fmt.Println(a)
//数组初始化
//方法一用初始值列表的方式初始化
stringarray := [4]string{"北京", "海南", "浙江", "广州"} //[]里面的是给定的数组长度
//方法二编译器推导数组长度
var boolarray = [...]bool{true, false, true} //...意思是未定,由后面赋值推导
fmt.Println(stringarray, boolarray)
//方法三使用索引值方式初始化
var stringarray2 = [...]string{1: "hello", 3: "world", 6: "lbdgood"} //数组下标从零开始,而这样写意思是往下标1,3,6的地方写入指定值,可知数组长度为7
fmt.Println(stringarray2)
fmt.Printf("%T\n", stringarray2)
//数组遍历,有两种方式
//1.for循环
for i := 0; i < len(stringarray); i++ {
fmt.Println(stringarray[i])
}
//2.for range循环
for index, value := range stringarray {
fmt.Println(index, value)
}
//如果不想要下标值,也可以这么写,用匿名变量
for _, lbd := range boolarray {
fmt.Println(lbd)
}
//如果不想要值,只想输出下标值,那就省略值的定义
for index := range boolarray {
fmt.Println(index)
}
//数组函数调用传递
//GO语言数组调用是值传递,不是引用传递,java是引用传递,要小心
lbd3 := [4]int{1, 2, 3, 4}
aa(lbd3)
fmt.Printf("值是%d", lbd3[0]) //lbd3数组里的值并没有因为传入函数而改变,这叫值传递,如果是java,那就会变了哦
}
func aa(a [4]int) {
a[0] = 100
}
这是运行结果哦
风轻轻吹