【go从零单排】go中的range的用法
Don’t worry , just coding!
内耗与overthinking只会削弱你的精力,虚度你的光阴,每天迈出一小步,回头时发现已经走了很远。
概念
range 关键字用于迭代数组、切片、字符串、映射(map)或通道(channel)等数据结构的元素。range 的基本语法如下:
for index, value := range collection {
// 迭代逻辑
}
index 是当前元素在集合中的索引(对于切片、数组、字符串),或者是键(对于映射)。
value 是当前元素的副本,可以是集合中的元素值(对于切片、数组、字符串),或者是键对应的值(对于映射)。
代码
package main
import "fmt"
func main() {
//定义slice 赋值给变量nums
nums := []int{2, 3, 4}
sum := 0
//range() 返回两个参数,第一个是索引,第二个是value,这里不需要索引只要计算值可以用_代替
for _, num := range nums {
sum += num
}
fmt.Println("sum:", sum)
//返回value为3的元素索引
for i, num := range nums {
if num == 3 {
fmt.Println("index:", i)
}
}
//定义map key和value的类型都是string,赋值给kvs
kvs := map[string]string{"a": "apple", "b": "banana"}
//遍历并且打印key,value
for k, v := range kvs {
fmt.Printf("%s -> %s\n", k, v)
}
//只需要key不需要value时这样写
for k := range kvs {
fmt.Println("key:", k)
}
//便利字符串“go”,并返回索引和值,这里会返回字母的unicode编码值
for i, c := range "go" {
fmt.Println(i, c)
}
}
理解
go中的range会返回2个元素,第一个是索引,第二个才是值。
掌握知识的最好方式就是教会别人,每篇文章都讲清楚一个知识点,欢迎留言我一起讨论。