当前位置: 首页 > news >正文

【Go自学第三节】Go的范围(Range)用法

Go 语言中 range 关键字用于 for 循环中迭代数组(array)、切片(slice)、通道(channel)或集合(map)的元素。在数组和切片中它返回元素的索引和索引对应的值,在集合中返回 key-value 对。

在讲Go语言的range之前,我们先回顾下Python中range的用法

for i in range(3):print(i)

它的输出结果是

1
2
3

 也就是说我们会对range()方法中存在的元素进行迭代,Go语言中也是这样,不过不同的是python range()中参数是基本数据类型通常是整型数字类型,但是Go语言range用于迭代数组、切片或者集合。


for 循环的 range 格式可以对 slice、map、数组、字符串等进行迭代循环。格式如下:

for key, value := range oldMap {newMap[key] = value
}

如果只想读取 key,格式如下:

for key := range oldMap
//或者
for key, _ := range oldMap

如果只想读取 value,格式如下:

for _, value := range oldMap

 举一个例子

package main
import "fmt"func main() {map1 := make(map[int]float32)map1[1] = 1.0map1[2] = 2.0map1[3] = 3.0map1[4] = 4.0// 读取 key 和 valuefor key, value := range map1 {fmt.Printf("key is: %d - value is: %f\n", key, value)}// 读取 keyfor key := range map1 {fmt.Printf("key is: %d\n", key)}// 读取 valuefor _, value := range map1 {fmt.Printf("value is: %f\n", value)}
}

输出结果如下

key is: 4 - value is: 4.000000
key is: 1 - value is: 1.000000
key is: 2 - value is: 2.000000
key is: 3 - value is: 3.000000
key is: 1
key is: 2
key is: 3
key is: 4
value is: 1.000000
value is: 2.000000
value is: 3.000000
value is: 4.000000

 

http://www.lryc.cn/news/36517.html

相关文章:

  • 【备战面试】每日10道面试题打卡-Day6
  • Stable Diffusion 个人推荐的各种模型及设置参数、扩展应用等合集(不断更新中)
  • Salesforce 2023财年逆风增长,现金流达历史最高!
  • 2023年3月全国数据治理工程师认证DAMA-CDGA/CDGP考试怎么通过?
  • 【安卓软件】KMPlayer-一款完美的媒体播放器 可以播放所有格式的字幕和视频
  • ClickHouse--分布式查询多副本的路由规则
  • Linux 常用命令总结
  • 超分扩散模型 SR3 可以做图像去雨、去雾等恢复任务吗?
  • STM32Cube STM32MP157 M4端CAN通讯实战
  • npm install报错unable to resolve dependency tree
  • 力扣sql简单篇练习(二十六)
  • 2022年全国职业院校技能大赛(中职组)网络安全竞赛试题A模块第九套解析(详细)
  • C++回顾(十六)—— 异常处理机制
  • 【100个 Unity实用技能】 | Unity 在代码中 动态改变RectTransform位置及宽高 的方法整理
  • 哈希表的实现
  • 搞懂海明码
  • 数据库:Mysql数据库安装及使用
  • 【冲刺蓝桥杯的最后30天】day7
  • REG.EXE修改注册表-解决win10微软输入法默认中文,将其全局修改为英文
  • hive之正则函数研究学习regex/regex_replace/regex_extract
  • Codeforces Round 854 by cybercats (Div. 1 + Div. 2) C、D1
  • API 网关日志的价值,你了解多少?
  • 华大单片机、STM32单片机如何做printf串口打印格式化输出
  • unity 面试汇总
  • Spring SpringBoot中使用Mybatis-plusDemo1
  • 【18.04Ubuntu中解决无法识别显示屏】
  • Python 协程详解,都在这里了
  • 百家号如何写文章赚钱,百家号写文章真的赚钱?
  • 【HDFS】datanodeReport RPC优化
  • 【数据结构】研究链表带环问题