引言

数组与切片

数组

数组是固定大小的数据集合,元素类型相同。在Golang中,数组通过下标访问元素。

package main

import "fmt"

func main() {
    // 声明并初始化一个整型数组
    arr := [5]int{1, 2, 3, 4, 5}
    
    // 打印数组
    fmt.Println(arr)
    
    // 通过下标访问元素
    fmt.Println(arr[2])
}

切片

切片是动态大小的数组序列,它基于数组创建,可以改变大小。

package main

import "fmt"

func main() {
    // 通过数组创建切片
    arr := [5]int{1, 2, 3, 4, 5}
    slice := arr[1:4]
    
    // 打印切片
    fmt.Println(slice)
    
    // 扩展切片
    slice = append(slice, 6)
    fmt.Println(slice)
}

映射

映射(map)是键值对的集合,类似于其他语言的字典或哈希表。

package main

import "fmt"

func main() {
    // 创建并初始化映射
    m := map[string]int{"one": 1, "two": 2, "three": 3}
    
    // 打印映射
    fmt.Println(m)
    
    // 访问映射中的元素
    fmt.Println(m["two"])
    
    // 添加元素到映射
    m["four"] = 4
    fmt.Println(m)
}

集合操作实战

实战一:排序数组

package main

import "fmt"

func sortArray(arr []int) []int {
    // 使用冒泡排序算法对数组进行排序
    for i := 0; i < len(arr)-1; i++ {
        for j := 0; j < len(arr)-i-1; j++ {
            if arr[j] > arr[j+1] {
                arr[j], arr[j+1] = arr[j+1], arr[j]
            }
        }
    }
    return arr
}

func main() {
    arr := []int{5, 2, 9, 1, 5, 6}
    sortedArr := sortArray(arr)
    fmt.Println(sortedArr)
}

实战二:映射查找

package main

import "fmt"

func findElementInMap(m map[string]int, key string) (int, bool) {
    value, exists := m[key]
    return value, exists
}

func main() {
    m := map[string]int{"one": 1, "two": 2, "three": 3}
    value, exists := findElementInMap(m, "two")
    if exists {
        fmt.Println("Found:", value)
    } else {
        fmt.Println("Not found")
    }
}

总结

通过本文的学习,读者应能够掌握Golang中的数组、切片、映射和集合的基本操作。实战示例展示了如何对数组进行排序以及如何在映射中查找元素。这些技巧对于开发高效且可靠的Golang程序至关重要。继续实践和探索Golang的特性,将有助于你成为一名优秀的Golang开发者。