初始化数组的方式
var array1 [3]int = [3]int{11,22,33}
var array2 = [...]string{"aa", "bb", "cc"} //字符串必须使用双引号
var array3 = [...]float64{11.1, 22.2, 33.3} //这里的...是规定的写法,不限制数组元素个数
var array4 = [...]int8{1:3, 2:6, 0:9, 5:2, 8:5, 3:8}
array5 := [...]int32{111,222,333,555,888} //类型推导
fmt.Println(array1, array2, array3, array4, array5)
数组入门,定义数组
var arr [3]int
arr[0] = 11
arr[1] = 22
arr[2] = 33
fmt.Println(arr, len(arr)) //打印数组和数组长度
定义一个三个元素的数组,求和求平均值
var arr2 [3]float64 //数组元素只能是float64
arr2[0] = 11.1
arr2[1] = 22.2
arr2[2] = 30.0
var sum float64
for i := 0; i < len(arr2); i++ {
sum += arr2[i]
}
n := fmt.Sprintf("%.2f", sum / float64(len(arr2))) //%.2f表示保留两位小数
fmt.Printf("arr2内的和是:%v \n", sum)
fmt.Printf("arr2内的平均数是:%v \n", n)
从终端输入2个数,保存到数组并输出
var number [2]float64
var totalNum float64
for i := 0; i < len(number); i++ {
fmt.Printf("请输入第%d个数 \n", i)
fmt.Scan(&number[i])
}
fmt.Printf("输入的数据为:%v \n", number)
for i := 0; i < len(number); i++ {
totalNum += number[i]
}
fmt.Printf("总和是:%v \n", totalNum)
使用for-range遍历数组
//第一个返回值index是数组下标,第二个value是在该下标位置的值,仅在for-range内有效
for index, value := range array5 {
fmt.Println(index, value)
}
//遍历时,对于不想使用的变量,可以使用下划线”_“忽略
for _, value := range array5 {
fmt.Println(value)
}
for index, _ := range array5 {
fmt.Printf("%v => %v \n", index, array5[index])
}
数组注意事项
1、数组是多个相同数据类型的组合,一个数组一旦声明长度后,不能动态变化,否则报错
2、var arr []int,这样定义时,arr是切片并非数组
3、数组中的元素可以是任意数据类型,包括值类型和引用类型,但是不能混用
4、数组创建后,如果没有赋值,则使用默认值(零值)
数值类型数组,默认值为0
字符串数组,默认值为""
bool数组,默认值为false
5、使用数组的步骤:1声明数组并开辟空间;2给数组各个元素赋值(默认零值);3使用数组
6、数组下标从0开始
7、数组下标必须在指定范围内使用,否则报panic:数组越界,比如数组var arr [5]int默认的有效下标为0-4
8、Go的数组属于值类型,在默认情况下是值传递,因此会进行值拷贝,树组件不会相互影响
9、如想在其它函数中,去修改原来的数组,可以使用引用方式(指针)
10、长度是数组类型的一部分,在传递函数参数时,需要考虑数组的长度
下一篇:最后一页