引言
数组与切片
数组
数组是固定大小的数据集合,元素类型相同。在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开发者。