Go 语言范围(Range)

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

实例

package main
import "fmt"
func main() {
//这是我们使用range去求一个slice的和。使用数组跟这个很类似
nums := []int{2, 3, 4}
sum := 0
for _, num := range nums {
sum += num
}
fmt.Println("sum:", sum)
//在数组上使用range将传入index和值两个变量。上面那个例子我们不需要使用该元素的序号,所以我们使用空白符"_"省略了。有时侯我们确实需要知道它的索引。
for i, num := range nums {
if num == 3 {
fmt.Println("index:", i)
}
}
//range也可以用在map的键值对上。
kvs := map[string]string{"a": "apple", "b": "banana"}
for k, v := range kvs {
fmt.Printf("%s -> %s\n", k, v)
}
//range也可以用来枚举Unicode字符串。第一个参数是字符的索引,第二个是字符(Unicode的值)本身。
for i, c := range "go" {
fmt.Println(i, c)
}
}

以上实例运行输出结果为:

sum: 9
index: 1
a -> apple
b -> banana
0 103
1 111

Go Range 简单循环:

package main

import "fmt"

func main(){
nums := []int{1,2,3,4};
length := 0;
for range nums {
length++;
}
fmt.Println( length);
}

循环键值对

package main
import "fmt"
func main(){
nums := []int{1,2,3,4}
for i,num := range nums {
fmt.Printf("索引是%d,长度是%d\n",i, num)
}
}

输出结果为:

索引是0,长度是1
索引是1,长度是2
索引是2,长度是3
索引是3,长度是4

通过 range 获取参数列表:

package main

import (
"fmt"
"os"
) func main() {
fmt.Println(len(os.Args))
for _, arg := range os.Args {
fmt.Println(arg)
}
}

最新文章

  1. 浅谈Excel开发:四 Excel 自定义函数
  2. CF722D. Generating Sets[贪心 STL]
  3. javascript中的删除方法
  4. FPGA基本原理之一
  5. atitit.编程语言 程序语言 的 工具性 和 材料性 双重性 and 语言无关性 本质
  6. MongoDB配置多个ConfigDB的问题(笔记)
  7. HDU 4911 http://acm.hdu.edu.cn/showproblem.php?pid=4911(线段树求逆序对)
  8. nginx 搭配 lua
  9. 【Spring】Redis的两个典型应用场景--good
  10. posix thread内存可视性
  11. yarn队列提交spark任务权限控制
  12. Swift(二,元组,可选类型,类型转化)
  13. PHP服务器脚本 PHP内核探索:新垃圾回收机制说明
  14. Hibernate 学习笔记 - 1
  15. Docker的Etcd项目
  16. Java 基础 Java平台的3个版本
  17. Judy Beta Postmortem
  18. Nginx详解二十七:Nginx架构篇之安全篇
  19. TMS320DM642学习----第二篇(软件环境搭建+工程文件结构)
  20. 转:【专题九】实现类似QQ的即时通信程序

热门文章

  1. iOS核心动画高级技巧-4
  2. Android 日期对话框 DatePickerDialog
  3. Android 框架布局 FrameLayout
  4. oracle数据库执行sql文件
  5. QForkMasterInit: system error caught. error code=0x000005af, message=VirtualAllocEx failed.(遇到还没试过)
  6. vue学习笔记(十)路由
  7. React Native-ios环境的搭建
  8. 整理h5移动端适配方案
  9. .NET Core 3.0之深入源码理解Host(一)
  10. Filter Lookup Editor Data Source 筛选器查找编辑器数据源