From aed95370cf04dd0ee7ea53660128cca78774598c Mon Sep 17 00:00:00 2001 From: Shikong <919411476@qq.com> Date: Fri, 17 Sep 2021 22:38:59 +0800 Subject: [PATCH] =?UTF-8?q?docs:=20Array=20=E6=95=B0=E7=BB=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- base/array/main.go | 76 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 76 insertions(+) create mode 100644 base/array/main.go diff --git a/base/array/main.go b/base/array/main.go new file mode 100644 index 0000000..0a328dc --- /dev/null +++ b/base/array/main.go @@ -0,0 +1,76 @@ +package main + +import "fmt" + +func main() { + // 定义一个长度为 3 的 int 数组 + // var 变量名 [长度]类型 + // 定义后大小不可变 + // 如果未初始化 数组内元素 默认为对应类型的初始值 + var a1 [3]int + fmt.Printf("a1: %T %+v\n", a1, a1) + + // 指定长度 并初始化 + var a2 = [10]bool{false, true, false} + fmt.Printf("a2: %T %+v\n", a2, a2) + + // 根据元素数量自动推断长度 + // [...]类型{元素1,元素2...} 为数组 + // []类型{元素1,元素2...} 为 切片 + var a3 = [...]bool{true, true, false} + fmt.Printf("a3: %T %+v\n", a3, a3) + + // 指定元素下标 + var a4 = [...]bool{0: true, 2: true, 4: true} + fmt.Printf("a4: %T %+v\n", a4, a4) + + fmt.Println("=========================================================") + + // 数组遍历 + for i, v := range a4 { + fmt.Printf("%d, %v ", i, v) + } + + fmt.Println("\n=========================================================") + + // 多维数组 + var a5 [3][2]int + fmt.Printf("a5: %T %+v\n", a5, a5) + + // 多维数组 初始化 + var a6 = [3][2]bool{ + 1: {true, true}, + {false, 1: true}, + } + fmt.Printf("a6: %T %+v\n", a6, a6) + + // 多维数组遍历 + for i, a := range a6 { + fmt.Printf("%d: %v => ", i, a) + for j, v := range a { + fmt.Printf("(%d, %v) ", j, v) + } + fmt.Printf("\t") + } + + fmt.Println("\n=========================================================") + + // 数组 为 值类型 + // 支持 == != 操作符 + // [长度]*类型 为指针数组 *[长度]类型 为数组指针 + a7 := [...]int{1, 2, 3} + a8 := a7 + a8[1] = 8 + + fmt.Println(a7) + fmt.Println(a8) + + fmt.Println("=========================================================") + + // 切片 为 引用类型 + a9 := []int{1, 2, 3} + a10 := a9 + a10[1] = 8 + fmt.Println(a9) + fmt.Println(a10) +}