【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个元素,第一个是索引,第二个才是值。

掌握知识的最好方式就是教会别人,每篇文章都讲清楚一个知识点,欢迎留言我一起讨论。

作者:杜杜的man

物联沃分享整理
物联沃-IOTWORD物联网 » 【go从零单排】go中的range的用法

发表回复