Go笔记(四):数组

  数组是同类型的数据集合,数组长度一旦被定义就不能被修改,可通过下标访问数组元素。

1、声明数组

1.1、语法

var variable_name [SIZE] variable_type

  variable_name 数组名称

  SIZE 数组长度,必须为常量

  variable_type 数组保存元素的数据类型

1.2、示例代码

 1 package main
 2 
 3 import "fmt"
 4 
 5 // 声明数组
 6 func defineArr() {
 7    // 定义一个长度为2的string类型的数组
 8    var arr01 [2]string
 9 
10    // 定义一个长度为3的int类型的数组
11    var arr02 [3]int
12 
13    //定义一个长度为4的bool类型的数组
14    var arr03 [2]bool
15    fmt.Printf("arr01: %T, %v\n", arr01, arr01)
16    fmt.Printf("arr02: %T, %v\n", arr02, arr02)
17    fmt.Printf("arr03: %T, %v\n", arr03, arr03)
18 
19 }
20 
21 func main() {
22    defineArr()
23 }

  声明的数组,元素值为数组中元素类型的默认值。如int类型,默认值为0,布尔类型元素为false,字符串类型是空字符串。上述代码执行结果如下:

 

2、初始化数组

  初始化数组就是给声明的数组赋值,改变元素默认值。

2.1、数组长度固定

 1 package main
 2 
 3 import "fmt"
 4 
 5 /**
 6   初始化数组
 7    方式一:数组长度固定,使用初始化列表, 数组元素内容写在{}里
 8  */
 9 func initArrOne() {
10    var arr01 = [3]int{1, 2, 3}
11    var arr02 = [2]string{"hello", " world"}
12    var arr03 = [2]bool{false, true}
13 
14    fmt.Printf("arr01: %v\n", arr01)
15    fmt.Printf("arr02: %v\n", arr02)
16    fmt.Printf("arr03: %v\n", arr03)
17 }
18 
19 func main() {
20    initArrOne()
21 }

2.2、数组长度不固定,初始化数组(全部元素)

 1 package main
 2 
 3 import "fmt"
 4 
 5 /**
 6   初始化数组
 7    方式二:数组长度不定,使用...
 8 */
 9 func initArrTwo() {
10    var arr01 = [...]int{1, 2, 3}
11    var arr02 = [...]string{"hello", " world"}
12    var arr03 = [...]bool{false, true}
13    fmt.Printf("len(arr01): %v\n", len(arr01))
14    fmt.Printf("arr01: %v\n", arr01)
15    fmt.Printf("len(arr02): %v\n", len(arr02))
16    fmt.Printf("arr02: %v\n", arr02)
17    fmt.Printf("len(arr03): %v\n", len(arr03))
18    fmt.Printf("arr03: %v\n", arr03)
19 }
20 
21 func main() {
22    initArrTwo()
23 }

2.3、数组长度不固定,初始化数组(指定下标)

 1 package main
 2 
 3 import "fmt"
 4 
 5 /**
 6   初始化数组
 7    方式三:设置对应索引的值初始化数组,未设置值的索引元素内容为默认值
 8 */
 9 func initArrThree() {
10    var arr01 = [...]int{2: 4, 5: 1}
11    var arr02 = [...]string{1: "hello", 3: " snails"}
12    var arr03 = [...]bool{4: false, 5: true}
13 
14    fmt.Printf("arr01: %v\n", arr01)
15    fmt.Printf("arr02: %v\n", arr02)
16    fmt.Printf("arr03: %v\n", arr03)
17 
18    // 类型推断
19    arr04 := [...]int{4, 5}
20    fmt.Printf("arr04: %T, %v\n", arr04, arr04)
21 }
22 
23 func main() {
24    initArrThree()
25 }

3、访问数组

3.1、访问指定下标的数组元素

 1 package main
 2 
 3 import "fmt"
 4 
 5 /**
 6    访问数组:
 7       方式一:通过下标访问数组元素
 8  */
 9 func visitArr01() {
10    arr01 := [2]int{1, 2}
11    fmt.Printf("arr01[0]: %v\n", arr01[0])
12    fmt.Printf("arr01[1]: %v\n", arr01[1])
13    // 修改数组元素
14    arr01[0] = 5
15    arr01[1] = 6
16    fmt.Printf("arr01[0]: %v\n", arr01[0])
17    fmt.Printf("arr01[1]: %v\n", arr01[1])
18 }
19 
20 func main() {
21    visitArr01()
22 }

3.2、遍历数组

 1 package main
 2 
 3 import "fmt"
 4 
 5 /**
 6 访问数组:
 7    方式二:根据数组长度访问数组元素,通过下标访问
 8 */
 9 func visitArr02() {
10    var arr01 = [...]int{5, 2, 1}
11    for i := 0; i < len(arr01); i++ {
12       fmt.Printf("arr01[%v]: %v\n", i, arr01[i])
13    }
14 }
15 
16 func main() {
17    visitArr02()
18 }

 

posted @ 2023-04-13 08:22  无虑的小猪  阅读(30)  评论(0编辑  收藏  举报