2.range的用法

Python020

2.range的用法,第1张

仅为个人阅读时遇到的困惑的理解,希望友善讨论

2021.6.25

《GO语言圣经》-《GO程序设计语言》

P5

在命令行中运行

go run main.go 一 二三 四

得到的结果

在命令行中运行

go run main.go 一 二三 四

得到的结果

range 获取一个范围,

有两个返回值,在本例中分别是 i 和 arg 。

第一个返回值 i 总是从0开始的,和 range 取范围的值(也就是本例中的 os.Args )无关。(也就是本例中 os.Args[1:] 虽然是从 os.Args 的1值开始取的,但是在 range 中还是0)。

第二个返回值 arg 是切片的结果。

我理解的: range 将 os.Args 切成一个数组,先返回数组下标,再返回数组内容。

你把它理解为遍历么,结合for循环。

假设有一个初始化好的数组(table)或者切片(slice)的table,且table长度为10:

for i, value := range table {

    fmt.Printf("i=%v, value=%v\n", i, value)

}

则会执行fmt.Printf10次,且这10次的【i】的值分别是从0~9,也就相当于

for i := 0 i < len(table) i++ {

    fmt.Printf("i=%v, value=%v\n", i, table[i])

}

如果把上边的数组或者切片换成map

for key, value := range table {

    fmt.Pritnf("key=%v, value=%v\n", key, value)

}

则类似上边的过程把map里边的key-value键值对一 一遍历