考虑以下仅打印所有 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 回答
![?](http://img1.sycdn.imooc.com/5458506b0001de5502200220-100-100.jpg)
拉莫斯之舞
TA贡献1820条经验 获得超10个赞
如范围条款中所述:
range 子句提供了一种迭代数组、切片、字符串、映射或通道的方法。
如果你想迭代一个[]string
,你需要range
.
一个For语句并不总是使用范围。
ForStmt = "for" [ Condition | ForClause | RangeClause ] Block .
你有:
以最简单的形式,
for
只要布尔条件评估为真,“ ” 语句指定块的重复执行带有 a 的“for”语句
ForClause
也受其条件控制,但另外它还可以指定 init 和 post 语句,例如赋值、增量或减量语句带有“range”子句的“for”语句遍历数组、切片、字符串或映射的所有条目,或通道上接收到的值。对于每个条目,它会将迭代值分配给相应的迭代变量(如果存在),然后执行该块。
- 1 回答
- 0 关注
- 162 浏览
添加回答
举报
0/150
提交
取消