首页 > 技术分享 > Golang
收藏

Go语言数组

04/03 17:05
大潇博客 原创文章,转载请标明出处

初始化数组的方式

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、长度是数组类型的一部分,在传递函数参数时,需要考虑数组的长度




打赏

阅读排行

大家都在搜

博客维护不易,感谢你的肯定
扫码打赏,建议金额1-10元
  • 15601023311