为了账号安全,请及时绑定邮箱和手机立即绑定

go中for循环结构与范围关键字之间的区别

go中for循环结构与范围关键字之间的区别

Go
人到中年有点甜 2021-10-18 11:14:32
考虑以下仅打印所有 ENV 变量的代码package mainimport (    "fmt"    "os")func main() {    for i, env := range os.Environ() {        fmt.Println(i, env)    }}在这里, os.Environ() 应该返回字符串数组([] string ),循环遍历它。我需要使用 range 关键字和 for 循环。问题是:为什么 for & range 都需要?是否可以为此使用 for 循环,因为[]string它已经是一个数组,我们可以对数组进行迭代,对吗?在上面的代码中range做了什么?for循环有什么作用?对不起,如果这个问题太愚蠢,我只是从 Go 开始
查看完整描述

1 回答

?
拉莫斯之舞

TA贡献1820条经验 获得超10个赞

如范围条款中所述:

range 子句提供了一种迭代数组、切片、字符串、映射或通道的方法。

如果你想迭代一个[]string,你需要range.

一个For语句并不总是使用范围。

ForStmt = "for" [ Condition | ForClause | RangeClause ] Block .

你有:

  • 以最简单的形式,for只要布尔条件评估为真,“ ” 语句指定块的重复执行

  • 带有 a 的“for”语句ForClause也受其条件控制,但另外它还可以指定 init 和 post 语句,例如赋值、增量或减量语句

  • 带有“range”子句的“for”语句遍历数组、切片、字符串或映射的所有条目,或通道上接收到的值。对于每个条目,它会将迭代值分配给相应的迭代变量(如果存在),然后执行该块。


查看完整回答
反对 回复 2021-10-18
  • 1 回答
  • 0 关注
  • 162 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信