目录
一、Go语言数组简介
1.1 什么是数组?
-
数组是一个由固定长度的特定类型元素组成的序列,一个数组可以由零个或多个元素组成。
-
因为数组的长度是固定的,所以在Go语言中很少直接使用数组。
-
数组可以存放多个同一类型数据。数组也是一种数据类型,在Go中,数组是值类型。
-
数组的每个元素都可以通过索引来访问,索引起始0开始到数组长度减1的位置,内置函数len()可以返回数组中元素的个数。
1.2 数组声明语法
var 数组变量名 [元素数量]Type
- 数组变量名:数组声明及使用时的变量名
- 元素数量:数组的元素数量
- Type:可以是任意基本类型,也可以是数组本省,类型为数组本身时,可以实现多维数组。
举个例子:创建int类型的class数组,其中元素数量为5
var class [5]int
二、数组的基本操作
2.1 数组的定义及赋值
package main
import (
"fmt"
)
func main() {
var class [5]int // 定义数组
for i := 0; i < len(class); i++ {
class[i] = i + 100 // 数组赋值
}
fmt.Println(class)
}
代码输出内容:
[100 101 102 103 104]
2.2 数组的初始化
数组初始化是指在声明数组时赋值。
2.2.1 指定长度初始化
指定长度和初始化值,初始化数组中 {} 中的元素个数不能大于 [] 中的数字:
注意: 初始化时是带有 =
号的。
func main() {
var class = [4]string{"zhangsan", "lisi", "wangwu", "maliu"}
fmt.Printf("%v", class)
}
2.2.2 不指定长度初始化
当我们不指定长度的时候,也就是[]中不写入内容,GO语言默认会根据元素的个数来设置数组的大小。
package main
import (
"fmt"
)
func main() {
var class = [...]string{"zhangsan", "lisi", "wangwu", "maliu"}
fmt.Printf("%v", len(class))
}
或者使用 ...
如下:
package main
import (
"fmt"
)
func main() {
var class = [...]string{1: "lisi", 3: "maliu"}
fmt.Println(len(class))
}
代码输出内容:
4
2.2.3 根据索引初始化指定元素
只初始化索引是 1和3 的元素
package main
import (
"fmt"
)
func main() {
var class = []string{1: "lisi", 3: "maliu"}
fmt.Println(class)
}
三、数组的遍历
3.1 传统for循环遍历
package main
import (
"fmt"
)
func main() {
var arr = [...]float64{1.1, 1.2, 1.3, 1.4, 1.5, 1.6}
for i := 0; i < len(arr); i++ {
fmt.Println(arr[i])
}
}
3.2 for range循环遍历
package main
import (
"fmt"
)
func main() {
var arr = [...]float64{1.1, 1.2, 1.3, 1.4, 1.5, 1.6}
for i, v := range arr {
fmt.Printf("index=%d\tvalue=%v\n", i, v)
}
}
代码输出内容:
index=0 value=1.1
index=1 value=1.2
index=2 value=1.3
index=3 value=1.4
index=4 value=1.5
index=5 value=1.6
四、数组综合练习
4.1 案例一:比较两台数组元素是否一致
package main
import "fmt"
func main() {
var arr1 = [5]int{1, 2, 3, 4, 5}
var arr2 = [5]int{1, 2, 3, 4, 5}
b := Compare(arr1, arr2)
if b {
fmt.Println("数组一致!")
} else {
fmt.Println("数组不致!")
}
}
func Compare(n1 [5]int, n2 [5]int) bool {
var b bool = true
if len(n1) == len(n2) {
for i := 0; i < len(n1); i++ {
if n1[i] == n2[i] {
continue
} else {
b = false
break
}
}
} else {
b = false
}
return b
}
标签:初始化,入门,fmt,var,详解,数组,Go,main,class
From: https://www.cnblogs.com/qinziteng/p/17265242.html