Karp 的技术博客

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

    // 使用 make 创建切片
    slice = make([]int, 0)

    // 添加元素
    slice = append(slice, 1)
    slice = append(slice, 2, 3, 4, 5)

    // 输出切片
    fmt.Println("切片:", slice)

    // 切片的切片
    subSlice := slice[1:4] // 获取索引 1 到 3 的元素
    fmt.Println("切片的切片:", subSlice)
}

3. 关联数组(Map)

Map 是一种无序的键值对集合,键是唯一的。它非常适合用来存储关联数据。

示例代码

package main

import "fmt"

func main() {
    // 声明并初始化一个 Map
    var m map[string]int
    m = make(map[string]int)

    // 添加元素
    m["Alice"] = 25
    m["Bob"] = 30

    // 输出 Map
    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):无序的键值对集合,适合存储关联数据,键唯一。

golang

版权属于:karp
作品采用:本作品采用 知识共享署名-相同方式共享 4.0 国际许可协议 进行许可。
更新于: 2024年10月21日 07:43
0

目录

来自 《Go 语言中的数组、切片和关联数组(Map)示例》