Go 语言切片 (Slice)
切片简介
Go 数组的长度不可改变,在特定场景中这样的集合就不太适用,Go 中提供了一种灵活,功能强悍的内置类型切片 (“动态数组”)
切片操作
// 1.创建切片 var slice1 []type //2.切片的基本操作 (1)追加 var slice1 []int fmt.Println(slice1) slice1 = append(slice1, 1) fmt.Println(slice1) (2)copy var slice2 = make([]int, len(slice1)) copy(slice2, slice1) fmt.Println(slice2) fmt.Println(slice1) (3)截取 slice3 := []int{ 1, 2, 3, 4, } fmt.Println(slice3[:3])
Copy
切片与数组的关系
在 golang 中切片实质就是数组的一种,是对数组的一种抽象,在代码中的体现则是
数组 — 指定长度,超出范围报错
切片 — 不指定长度
Go 语言范围 (Range)
range 简介
中 range 关键字用于 for 循环中迭代 数组 (array)、切片 (slice)、通道 (channel) 或集合 (map) 的元素。在数组和切片中它返回元素的索引和索引对应的值
使用范围的语法
//遍历切片 for k, v := range slice3 { fmt.Println(k, v) }
Copy
range 也可以遍历字符串,返回的值不是字符串本身,而是字符对应的 unicode 码
stringTest := "test" for k, v := range stringTest { fmt.Println(k, v) }
Copy
Go 语言 Map (集合)
Map 简介
键值对的集合
Map 的基本操作
//创建Map m := make(map[string]string) m2 := map[string]string{ "test": "test", }
Copy
(1) 插入 m["test"] = "test" (2)删除 delete(m2,"test") (3)查找元素 m["test"]
Copy
Map 的遍历
for k, v := range map1 { fmt.Println(k, v) }
Copy
for _, v := range map1 { fmt.Println(k, v) }