自学网

Menu

Go 语言范围(Range)

Go 语言范围(Range)

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

实例

实例

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
— 于 共写了714个字
— 文内使用到的标签: