一、数组
1.1 数组基础
数组是固定长度、同类型元素的序列。在 Go 中,数组长度是类型的一部分。
package main
import "fmt"
func main() {
// ========== 数组声明 ==========
// 方式一:指定长度和类型
var arr1 [5]int // [0, 0, 0, 0, 0]
// 方式二:声明并初始化
var arr2 = [5]int{1, 2, 3, 4, 5}
// 方式三:短声明
arr3 := [5]int{1, 2, 3} // [1, 2, 3, 0, 0]
// 方式四:自动推断长度
arr4 := [...]int{1, 2, 3, 4, 5} // 长度为 5
// 方式五:指定索引初始化
arr5 := [5]string{1: "one", 3: "three"} // ["", "one", "", "three", ""]
fmt.Println(arr1, arr2, arr3, arr4, arr5)
// ========== 数组操作 ==========
// 访问元素
fmt.Println("arr2[0] =", arr2[0])
// 修改元素
arr2[0] = 100
fmt.Println("修改后:", arr2)
// 获取长度
fmt.Println("长度:", len(arr2))
// ========== 数组遍历 ==========
servers := [3]string{"web-01", "web-02", "web-03"}
// for 循环
for i := 0; i < len(servers); i++ {
fmt.Printf("servers[%d] = %s\n", i, servers[i])
}
// range 遍历
for index, value := range servers {
fmt.Printf("[%d] %s\n", index, value)
}
// ========== 多维数组 ==========
matrix := [3][3]int{
{1, 2, 3},
{4, 5, 6},
{7, 8, 9},
}
fmt.Println("矩阵:")
for _, row := range matrix {
fmt.Println(row)
}
// ========== 数组是值类型 ==========
original := [3]int{1, 2, 3}
copied := original // 完整复制
copied[0] = 100
fmt.Println("original:", original) // [1, 2, 3](未变)
fmt.Println("copied:", copied) // [100, 2, 3]
}
2026/3/20大约 14 分钟