Golang 复合类型:数组、切片与映射
前言 Go 的日常编码,八成时间在和 slice 与 map 打交道。这篇把它们的核心语义和著名"陷阱"讲透。 一、数组:定长的值类型 // 长度是类型的一部分: [3]int 和 [4]int 是不同类型! var a [3]int // {0, 0, 0}(零值) b := [3]int{1, 2, 3} c := [...]int{1, 2, 3} // 编译器数长度, 仍是 [3]int // 数组是值类型: 赋值和传参都是完整拷贝! d := b d[0] = 99 fmt.Println(b[0]) // 1 —— b 不受影响 实际开发中很少直接用数组(定长 + 值拷贝太死板),主力是切片。 ...