程序中经常需要用循环获取数据或者做条件判断,而Go语言中,循环遍历只需一个for{}就可以搞定。

用法一:for 赋值表达式; 判断条件; 赋值同时控制变量增减 { }

for i:=0; i<10; i++ { 
    // 循环10次
}

用法二:for 条件 { }

i := 0
for i<10 {
    // 只要条件满足就循环,尝尝在这里修改循环条件来控制循环
}

用法三:for {}

for {
    // 死循环。需要配合if 判断,当达到条件 break 退出循环
}

用法四:For-each range 循环

这种循环可以对字符串、数组、切片、字典等进行迭代,获取元素。有不同应用形式:

  • 只获取索引(字典就是键)
var a [3]int  
for i := range a {
    fmt.Printf("%d %d\n", i, a[i])    
}

ages := map[string]int{
    "alice":   31,
    "charlie": 34,
}
for name := range ages {
    fmt.Printf("%s\t%d\n", name, ages[name])
}
  • 获取索引及对应元素(字典就是键和值)
var a [3]int  

for i, v := range a {
    fmt.Printf("%d %d\n", i, v)
}


ages := map[string]int{
    "alice":   31,
    "charlie": 34,
}
for name, age := range ages {
    fmt.Printf("%s\t%d\n", name, age)
}
for _, age := range ages {
    fmt.Printf("%d\n", age)
}

如果只想取值,不需要索引,可以用"_"下划线占位索引。

关于Go语言万能的for循环,你还知道哪些?评论区讨论分享给更多人吧!


【来思Go】,Let's Go!

专注分享技术干货,欢迎关注留言交流学习!