广告
返回顶部
首页 > 资讯 > 后端开发 > GO >Go 容器遍历的实现示例
  • 468
分享到

Go 容器遍历的实现示例

2024-04-02 19:04:59 468人浏览 安东尼
摘要

前文回顾 前面的文章主要介绍了 Go 语言中提供了 list 列表和 Map 映射关系容器,这两种容器都是我们日常经常使用到的。介绍了好多种的 Go 语言提供的基础容器,免不了要查

前文回顾

前面的文章主要介绍了 Go 语言中提供了 list 列表和 Map 映射关系容器,这两种容器都是我们日常经常使用到的。介绍了好多种的 Go 语言提供的基础容器,免不了要查询容器中的数据,那么是如何实现遍历的呢?本文将会介绍几种常用容易的遍历及其使用。

容器遍历

Go 语言中 range 关键字用于 for 循环中迭代数组(array)、切片(slice)、通道(channel)或集合(map)的元素。在数组和切片中它返回元素的索引和索引对应的值,在集合中返回 key-value 对。
遍历对于很多 golang 的内置容器来说,形式都是基本一致的,主要通过 for-range 语法,我们将通过以下的例子分别展示数组、切片和字典的遍历过程,代码如下所示:


package main

import "fmt"

func main()  {

 // 数组的遍历
 nums := [...]int{1,2,3,4,5,6,7,8}
 for k, v:= range nums{
  // k 为下标,v 为对应的值
  fmt.Println(k, v, " ")
 }

 fmt.Println()

 // 切片的遍历
 slis := []int{1,2,3,4,5,6,7,8}
 for k, v:= range slis{
  // k 为下标,v 为对应的值
  fmt.Println(k, v, " ")
 }

 fmt.Println()

 // 字典的遍历
 tmpMap := map[int]string{
  0 : "小明",
  1 : "小红",
  2 : "小张",
 }

 for k, v:= range tmpMap{
  // k 为键值,v 为对应值
  fmt.Println(k, v, " ")
 }
}

通过 for-range 可以对数组、切片和字典以同样的方式进行遍历。如果仅需要遍历值,可以将不需要的键改为匿名变量形式,如下所示:


for _, v := range nums {

仅遍历键时,可以直接省略掉无用值的赋值。在 for-range 遍历的过程中,因为键和值都是通过拷贝的方式进行赋值,对它们进行修改并不会影响到容器内成员的变化,这点需要我们在实际开发中多加注意。

小结

本文主要介绍了容器的遍历。go 语言中主要通过 for-range 语法,文中实际的案例分别展示了数组、切片和字典的遍历过程。
在数组上使用 range 将传入 index 和值两个变量。当我们不需要使用该元素的序号,可以使用空白符"_"省略了。不过有些场景可能确实需要知道它的索引。 

到此这篇关于Go 容器遍历的实现示例的文章就介绍到这了,更多相关Go 容器遍历内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网! 

您可能感兴趣的文档:

--结束END--

本文标题: Go 容器遍历的实现示例

本文链接: https://www.lsjlt.com/news/128131.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Go 容器遍历的实现示例
    前文回顾 前面的文章主要介绍了 Go 语言中提供了 list 列表和 Map 映射关系容器,这两种容器都是我们日常经常使用到的。介绍了好多种的 Go 语言提供的基础容器,免不了要查...
    99+
    2022-11-12
  • Go循环遍历的示例分析
    小编给大家分享一下Go循环遍历的示例分析,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!在Golang的流程控制中,循环语句有for和range两种。for语句1....
    99+
    2023-06-06
  • Go遍历struct,map,slice的实现
    目录遍历结构体 遍历切片 遍历MapGolang json序列化(struct,int,map,slice)遍历结构体 如何实现遍历结构体字段? 好吧,言归正传!举个例子:...
    99+
    2022-11-12
  • Java实现广度优先遍历的示例详解
    目录什么是广度优先一个简单的例子程序实现总结什么是广度优先 广度就是扩展开,广度优先的意思就是尽量扩展开。所以在算法实现的时候,就是一个循环遍历枚举每一个邻接点。其基本思路就是按层扩...
    99+
    2022-11-13
  • C++实现图的遍历算法(DFS,BFS)的示例代码
    目录图的定义图的相关术语图的创建(邻接矩阵)---结构体图的创建(邻接矩阵)---邻接矩阵的创建图的创建(邻接表)---结构体图的创建(邻接表)---邻接表的创建对邻接矩阵进行深度优...
    99+
    2022-11-13
  • go语言yaml转map、map遍历的实现
    yaml文件内容 apiVersion: policy/v1beta1 kind: PodSecurityPolicy metadata: name: mysql-snaps...
    99+
    2022-11-12
  • 深思 PHP 数组遍历的差异(array_diff 的实现)284435示例
    前两天看到有人要编个考试系统,当时只是简单回了下用随机函数RND   实际一般需要从数据库中随机提取N道题目。   以下代码都基于VBS;   通常的编写类似这样的 '产...
    99+
    2023-05-20
    ASP生成不重复随机数字的另类思路
  • 深思 PHP 数组遍历的差异(array_diff 的实现)284455示例
    前两天看到有人要编个考试系统,当时只是简单回了下用随机函数RND   实际一般需要从数据库中随机提取N道题目。   以下代码都基于VBS;   通常的编写类似这样的 '产...
    99+
    2023-05-20
    ASP生成不重复随机数字的另类思路
  • java栈实现二叉树的非递归遍历的示例代码
    一般来说遍历二叉树用到递归,但是用Stack进行遍历也是一个不错的方法。 二叉树设置 class Node{ public int val; public Node left...
    99+
    2022-11-11
  • C++实现STL容器的示例
    各大容器的特点: 1.可以用下标访问的容器有(既可以插入也可以赋值):vector、deque、map; 特别要注意一下,vector和deque如果没有预先指定大小,是不能用下标法...
    99+
    2022-11-13
  • C++编程使用findfirst和findnext查找及遍历文件实现示例
    目录一、首先了解一下一个文件结构体:二、用 _findfirst 和 _findnext 查找文件这两个函数均在io.h里面 一、首先了解一下一个文件结构体: struct _f...
    99+
    2022-11-12
  • 实现Bean容器的示例分析
    实现Bean容器的示例分析,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。一、Spring Bean 容器是什么Spring 包含并管理应用对象的配置和生命周期,...
    99+
    2023-06-15
  • 深思 PHP 数组遍历的差异(array_diff 的实现)284627实例
    前两天看到有人要编个考试系统,当时只是简单回了下用随机函数RND   实际一般需要从数据库中随机提取N道题目。   以下代码都基于VBS;   通常的编写类似这样的 '产...
    99+
    2023-05-20
    ASP生成不重复随机数字的另类思路
  • C语言数据结构图的创建与遍历实验示例
    目录一、 实验目的二、 实验内容三、 实验工具四、 实验代码五、 实验结果六、总结与思考一、 实验目的 理解图的基本概念,掌握图的存储结构,实现图的深度优先搜索遍历算法与广度优先搜索...
    99+
    2022-11-13
  • Java编程实现深度优先遍历与连通分量代码示例
    深度优先遍历深度优先遍历类似于一个人走迷宫:如图所示,从起点开始选择一条边走到下一个顶点,没到一个顶点便标记此顶点已到达。当来到一个标记过的顶点时回退到上一个顶点,再选择一条没有到达过的顶点。当回退到的路口已没有可走的通道时继续回退。而连通...
    99+
    2023-05-30
    java 深度优先遍历 连通分量
  • GO语言创建钱包并遍历钱包(wallet)的实现代码
    基本知识 公钥加密算法使用的是成对的密钥:公钥和私钥,公钥可以公开,私钥不能被公开。比特币钱包实际上是一个密钥对,当你安装 一个钱包应用,或者是使用一个比特币客户端来生成一个新地址是...
    99+
    2022-11-12
  • Docker容器编译LNMP的实现示例
    目录一、 项目描述二、 Nginx镜像制作三、 Mysql镜像制作四、 PHP镜像制作五、 运行LNMP六、 网页查看一、 项目描述 使用Docker容器基于centos镜像分别制作...
    99+
    2022-11-12
  • Go操作etcd的实现示例
    目录etcdetcd介绍etcd应用场景服务发现配置中心分布式锁为什么用 etcd 而不用ZooKeeper?为什么不选择ZooKeeper?为什么选择etcd?etcd集群搭建一个...
    99+
    2022-11-12
  • go连接kafka的实现示例
    要在Go语言中连接Kafka,需要使用Kafka的Go客户端库,例如sarama。sarama是一个纯Go实现的Kafka客户端库,提供了连接Kafka集群、发送和接收消息等功能。 ...
    99+
    2023-03-19
    go连接kafka
  • docker 创建容器时指定容器ip的实现示例
    Docker创建容器时默认采用bridge网络,自行分配ip,不允许自己指定。 在实际部署中,我们需要指定容器ip,不允许其自行分配ip,尤其是搭建集群时,固定ip是必须的。 我们可...
    99+
    2022-11-12
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作