Don’t worry , just coding!
内耗与overthinking只会削弱你的精力,虚度你的光阴,每天迈出一小步,回头时发现已经走了很远。
概念
range 关键字用于迭代数组、切片、字符串、映射(map)或通道(channel)等数据结构的元素。range 的基本语法如下:
for index, value := range collection {
// 迭代逻辑
}
index 是当前元素在集合中的索引(对于切片、数组、字符串),或者是键(对于映射)。
value 是当前元素的副本,可以是集合中的元素值(对于切片、数组、字符串),或者是键对应的值(对于映射)。
代码
package mainimport "fmt"func main() {//定义slice 赋值给变量numsnums := []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,赋值给kvskvs := map[string]string{"a": "apple", "b": "banana"}//遍历并且打印key,valuefor 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个元素,第一个是索引,第二个才是值。
掌握知识的最好方式就是教会别人,每篇文章都讲清楚一个知识点,欢迎留言我一起讨论。