mirror of
https://gitee.com/shikong-sk/golang-study
synced 2025-02-23 23:42:15 +08:00
77 lines
1.7 KiB
Go
77 lines
1.7 KiB
Go
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)
|
|
}
|