golang for range

for 和 range 的语法和功能,以及如何使用它们遍历不同类型的数据结构

例如,我们可以使用 for range 遍历一个数组、切片、字符串、映射或者通道,获取它们的索引和值:


// 遍历数组

arr := [3]int{1, 2, 3}

for i, v := range arr {

    fmt.Println(i, v) // 0 1; 1 2; 2 3

}



// 遍历切片

slice := []int{4, 5, 6}

for i, v := range slice {

    fmt.Println(i, v) // 0 4; 1 5; 2 6

}



// 遍历字符串

str := "Hello"

for i, v := range str {

    fmt.Println(i, string(v)) // 0 H; 1 e; 2 l; 3 l; 4 o

}



// 遍历映射

m := map[string]int{"a":1, "b":2}

for k, v := range m {

    fmt.Println(k, v) // a 1; b 2 (无序)

}



// 遍历通道

ch := make(chan int)

go func() {

    ch <-7 

    ch <-8 

    close(ch)

}()

for v := range ch {

    fmt.Println(v) //7 ;8 

}

如果遍历映射时,只需要键而不需要值,也可以省略第二个变量,避免值的拷贝。例如:

func main() {

 m := map[string]int{"a":1, "b":2}

 for k := range m {

  fmt.Println(k)

 }

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值