Golang: for range

for range 遍历规律

字符串、数组、切片,返回下标、值

map返回key、val

channel只返回通道内的值

举例

func ForArrayTest() {
    fmt.Println("for range: str")
    str := "hello"
    for key, val := range str {
        fmt.Println(key, val)
    }

    fmt.Println("for range: array")
    array := [3]int {1,2,3}
    for key, val := range array {
        fmt.Println(key, val)
    }

    fmt.Println("for range: slice")
    slice := []int {1,2,3}
    for key, val := range slice {
        fmt.Println(key, val)
    }

    fmt.Println("for range: map")
    provinceCapital := make(map[string]string)
    provinceCapital["山东"] = "济南"
    provinceCapital["河北"] = "石家庄"
    provinceCapital["广东"] = "广州"
    for key, val := range provinceCapital {
        fmt.Println(key, val)
    }

    fmt.Println("for range: chan")
    cha1 := make(chan int, 3)
    cha1  <- 1
    cha1  <- 2
    cha1  <- 3
    //cha1  <- 4
    for val := range cha1 {
        fmt.Println(val)
    }
}

输出

for range: str
0 104
1 101
2 108
3 108
4 111
for range: array
0 1
1 2
2 3
for range: slice
0 1
1 2
2 3
for range: map
山东 济南
河北 石家庄
广东 广州
for range: chan
1
2
3
fatal error: all goroutines are asleep - deadlock!

 

posted @ 2020-04-11 18:57  jihite  阅读(1354)  评论(0编辑  收藏  举报