数组
概念:数组是具有相同唯一类型的一组已编号且长度固定的数据项序列,这种类型可以是任意的原始类型例如整形、字符串或者自定义类型。
package main
import "fmt"
func main() {
// 注意:数组的长度是数组类型的一部分
// 声明数组
var arr1 [3]int
arr1[0] = 2
arr1[1] = 22
arr1[2] = 222
// 初始化数组
var arr2 = [3]float64{1.2, 1.3, 1.6}
fmt.Println(arr1)
fmt.Println(arr2)
// 初始化数组不给定数组的大小
var arr3 = [...]int{1, 2, 3, 4, 5}
// 获取数组的长度
length := len(arr3)
fmt.Println(length)
fmt.Println(arr3)
// 根据索引获取数组中的值
fmt.Println(arr3[2])
// 根据索引初始化值
var arr4 = [3]int{0: 1, 2: 33}
fmt.Println(arr4)
}
数组的遍历
package main
import "fmt"
func main() {
var names = [...]string{"jack", "tom", "jerry"}
// 数组的遍历
for i, v := range names {
fmt.Println(i, v)
}
for i := 0; i < len(names); i++ {
fmt.Println(names[i])
}
// 多维数组
var arr = [2][3]int{
[3]int{1, 2, 3},
[3]int{11, 22, 33},
}
fmt.Println(arr)
// 多维数组的遍历
for _, v := range arr {
for _, vv := range v {
fmt.Println(vv)
}
}
// 数组是值类型
arr2 := [...]int{1,2,3}
arr3 := arr2
arr2[1] = 22
fmt.Println(arr2,arr3) //[1 22 3] [1 2 3]
// 声明一个数组 不指定数组的长度
var arr4 []int
fmt.Println(arr4)
}
练习
package main
import "fmt"
func main() {
// 练习1 求数组中的所以元素的和
arr := [...]int{1, 3, 5, 7, 8}
sum := 0
for _, v := range arr {
sum += v
}
fmt.Println(sum) // 24
// 练习2 找出数组中和为指定值的两个元素的下表 和为8
for i, v := range arr {
for j := 0; j < i; j++ {
if arr[j]+v == 8 {
fmt.Println(j, i)
}
}
}
}