Go 语言提供了多种数据结构以满足不同的需求。本文将介绍数组、切片(Slice)和关联数组(Map),并提供简单的示例代码。
1. 数组
数组是固定长度的集合,元素类型相同。数组的长度是数组类型的一部分。
示例代码
package main
import "fmt"
func main() { var arr [5]int
arr[0] = 1 arr[1] = 2 arr[2] = 3 arr[3] = 4 arr[4] = 5
fmt.Println("数组:", arr)
arr2 := [3]string{"apple", "banana", "cherry"} fmt.Println("数组2:", arr2) }
|
2. 切片(Slice)
切片是对数组的抽象,可以动态增长。切片不是固定长度的,使用起来更灵活。
示例代码
package main
import "fmt"
func main() { var slice []int
slice = make([]int, 0)
slice = append(slice, 1) slice = append(slice, 2, 3, 4, 5)
fmt.Println("切片:", slice)
subSlice := slice[1:4] fmt.Println("切片的切片:", subSlice) }
|
3. 关联数组(Map)
Map 是一种无序的键值对集合,键是唯一的。它非常适合用来存储关联数据。
示例代码
package main
import "fmt"
func main() { var m map[string]int m = make(map[string]int)
m["Alice"] = 25 m["Bob"] = 30
fmt.Println("关联数组:", m)
age := m["Alice"] fmt.Println("Alice 的年龄:", age)
if age, exists := m["Charlie"]; exists { fmt.Println("Charlie 的年龄:", age) } else { fmt.Println("Charlie 不在 Map 中") }
delete(m, "Bob") fmt.Println("删除 Bob 后的关联数组:", m) }
|
4. 总结
- 数组:固定长度的元素集合,使用简单但不够灵活。
- 切片:动态长度的数组,能够根据需要扩展,使用更方便。
- 关联数组(Map):无序的键值对集合,适合存储关联数据,键唯一。