- go语言中可以使用for range遍历数组、切片、字符串、map即通道(channel)。通过for range遍历的返回值有以下规律:
- 数组、切片、字符串返回索引和值
- map返回键和值
- 通道(channel)只返回通道内的值
1、go语言for range语法
for key, value := rangeoldMap {
nevMlap[key] = value
}
2、go语言for range实例
func f1() {
a := [5]int{1, 2, 3, 4, 5}
for i, v := range a {
fmt.Printf("i, v: %d %v \n", i, v)
}
}
func main() {
f1()
}
# 输出结果
i, v: 0 1
i, v: 1 2
i, v: 2 3
i, v: 3 4
i, v: 4 5
func f2() {
var a = []int{1, 2, 3}
for _, v := range a {
fmt.Printf("v: %v\n", v)
}
}
func main() {
f2()
}
func f3() {
var m = make(map[string]string, 0)
m["name"] = "tom"
m["age"] = "20"
m["email"] = "xxx@aa.com"
for key, value := range m {
fmt.Printf("%v: %v \n", key, value)
}
}
func main() {
f3()
}
# 输出结果
email: xxx@aa.com
name: tom
age: 20
func f4() {
s := "hello, go"
for i, v := range s {
fmt.Printf("%d: %c \n", i, v)
}
}
func main() {
f4()
}
# 输出结果
0: h
1: e
2: l
3: l
4: o
5: ,
6:
7: g
8: o