持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第17天,点击查看活动详情
一、数组的使用价值:
一、为什么需要数组?
一、问题:
一个养鸡场有6只鸡,它们的体重分别是 3KG 、5KG、1KG、3.4KG、2KG、50KG。请问这六只鸡的总体重是多少?平均体重是多少?请你编写一个程序。
二、使用传统方法解决:
package main
import (
"fmt"
)
func main() {
// 传统方法来解决问题:
// 1. 定义六个变量,分别来表示六只鸡的体重,然后求和求平均值
hen1 := 3.0
hen2 := 5.0
hen3 := 1.0
hen4 := 3.4
hen5 := 2.0
hen6 := 50.0
totalWeight := hen1 + hen2 + hen3 + hen4 + hen5 + hen6
// fmt.Sprintf("%.2f".totalWeight / 6) 将 totalWeight / 6 四舍五入保留到小数点2返回值
avgWeight := fmt.Sprintf("%.2f", totalWeight/6)
fmt.Printf("totalWeight=%v , avgWeight=%v", totalWeight, avgWeight)
}
对上面代码的说明:
- 使用传统的方法不利于数据的管理和维护
- 传统的方法不够灵活,因此我们引出需要学习的新的数据类型 ===> 数组
二、数组的快速入门:
一、数组介绍:
数组可以存放多个同一类型数据。数组也是一种数据类型,在Go中,数组是值类型。
二、数组快速入门:
比如,我们可以用数组来解决上一个问题。
package main
import (
"fmt"
)
func main() {
// 传统方法来解决问题:
// 1. 定义六个变量,分别来表示六只鸡的体重,然后求和求平均值
hen1 := 3.0
hen2 := 5.0
hen3 := 1.0
hen4 := 3.4
hen5 := 2.0
hen6 := 50.0
totalWeight := hen1 + hen2 + hen3 + hen4 + hen5 + hen6
// fmt.Sprintf("%.2f".totalWeight / 6) 将 totalWeight / 6 四舍五入保留到小数点2返回值
avgWeight := fmt.Sprintf("%.2f", totalWeight/6)
fmt.Printf("totalWeight=%v , avgWeight=%v", totalWeight, avgWeight)
fmt.Printf("\n")
// 使用数组的方法来解决问题:
// 1. 先定义一个数组
var hens [6]float64
// 2. 初始化数组,给每个元素赋值:元素的下标是从0开始的 0-5
hens[0] = 3.0
hens[1] = 5.0
hens[2] = 1.0
hens[3] = 3.4
hens[4] = 2.0
hens[5] = 50.0
// 3. 遍历数组求出总体重
totalWeight2 := 0.0
for i := 0; i < len(hens); i++ {
totalWeight2 += hens[i]
}
// 4. 求出平均体重
avgWeight2 := fmt.Sprintf("%.2f", totalWeight2/6)
fmt.Printf("totalWeight2=%v , avgWeight2=%v", totalWeight2, avgWeight2)
}
对上面代码的总结:
- 使用数组来解决问题,程序的可维护性增加
- 而且方法代码更加清晰,也容易扩展,数据的可维护性增加。