go语言for循环遍历切片slice、map、字符串和数组

go语言循环遍历的概念跟python的迭代遍历类似,对此有兴趣的可以参考:python迭代器,iter()函数,通关游戏实例

for循环遍历

go语言的循环遍历主要是通过for和range的配合使用,可以用来迭代slice、map等,实例如下:

实例

package main

import "fmt"

func main() {
	var a []int = []int{1, 2, 3, 4, 5}
	var b map[string]int = map[string]int{"x1": 1, "y1": 2, "z1": 3}
	for _, v := range a {
		fmt.Println(v)
	}
	fmt.Println("下面是map的循环遍历")
	for k, v := range b {
		fmt.Printf("键为%s,值为%d \n", k, v)
	}

}

代码输出:
1
2
3
4
5
下面是map的循环遍历
键为x1,值为1 
键为y1,值为2 
键为z1,值为3

代码解析

  1. 切片slice的循环当中,“_,”表示忽略,原本是索引,在go语言当中,变量声明了却不使用,会引发错误;
  2. 在map的循环当中,k,v分别表示键值对的键和值,即key和value的缩写;

字符串和数组可以遍历吗

python中的字符串和列表、元组之类的数据也是可以迭代遍历的,那么在go语言当中,字符串和数组是否也可以呢?我们来尝试一下:

package main

import (
	"fmt"
)

func main() {
	var a string = "璞玉天成,大器晚成"

	for _, v := range a {
		fmt.Printf("%c \n", v)
	}

	var b [5]int = [5]int{1, 2, 3, 4, 5}
	for _, v := range b {
		fmt.Println(v)
	}

}

代码输出:
璞 
玉 
天 
成 
, 
大 
器 
晚 
成 
1
2
3
4
5

代码解析

如上代码,遍历字符串的时候需要注意一点,就是如果只是直接打印v的话,会输出字符的unicode编码,是一串数字,如果要输出,就需要用fmt.Printf()中的%c运算符。



全栈后端 / go语法 :













Copyright © 2022-2024 笨鸟工具 x1y1z1.com All Rights Reserved.