数组可以存放多个同一类型数据。数组也是一种数据类型,在Go中,数组是值类型。
package main
import(
"fmt"
)
func main(){
//统计学生成绩的总分数
var scores[5] int
scores[0] = 90
scores[1] = 80
scores[2] = 89
scores[3] = 95
scores[4] = 98
total := 0
for i := 0; i < len(scores); i++{
total += scores[i]
}
fmt.Printf("学生成绩的总分数 = %v\n",total)
}
运行结果:
总结:使用数组来解决问题,程序的可维护行增加了,而且代码更加清晰,也容易扩展。
1、数组的定义
var 数组名 [数组大小] 数据类型
var a[5]int
2、数组在内存布局
对上图的总结:
全局:
var arr0 [5]int = [5]int{
1, 2, 3}
var arr1 = [5]int{
1, 2, 3, 4, 5}
var arr2 = [...]int{
1, 2, 3, 4, 5, 6}
var str = [5]string{
3: "hello world", 4: "tom"}
局部:
a := [3]int{
1, 2} // 未初始化元素值为 0。
b := [...]int{
1, 2, 3, 4} // 通过初始化值确定数组长度。
c := [5]int{
2: 100, 4: 200} // 使用索引号初始化元素。
1、访问数组元素
数组名[下标]
2、案例
package main
import(
"fmt"
)
func main(){
//从终端循环输入5个成绩,保存到scores数组中,并输出
var scores[5] int
for i := 0; i < len(scores); i++ {
fmt.Printf("请输入第%d个元素\n", i+1)
fmt.Scanln(&scores[i])
}
for i := 0; i < len(scores); i++{
fmt.Printf("scores[%d] = %v\n",i,scores[i])
}
}
见下列代码:
func main(){
//从终端循环输入5个成绩,保存到scores数组中,并输出
var scores[5] int
for i := 0; i < len(scores); i++ {
fmt.Printf("请输入第%d个元素\n", i+1)
fmt.Scanln(&scores[i])
}
for i := 0; i < len(scores); i++{
fmt.Printf("scores[%d] = %v\n",i,scores[i])
}
}
这是Go语言一种独有的结构,可以用来遍历访问数组元素。
基本语法:
for index,value := range array{
...
}
说明:
package main
import(
"fmt"
)
func main(){
//从终端循环输入5个成绩,保存到scores数组中,并输出
var scores[5] int
for i := 0; i < len(scores); i++ {
fmt.Printf("请输入第%d个元素\n", i+1)
fmt.Scanln(&scores[i])
}
//使用for-range遍历
for index, value := range scores{
fmt.Printf("scores[%d] = %v\n",index,value)
}
}