1.1. 在 Go 中如何使用 foreach 语法?

未匹配的标注

解答一:

golang.org/ref/spec#For_range

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

举个例子:

for index, element := range someSlice {
     // index 是我们所在的索引
     // element 是我们所在的 someSlice 中的元素
}

如果你不关心索引,你可以使用 _

for _, element := range someSlice {
    // element 是我们所在的 someSlice 中的元素 
}

下划线 _是 空白标识符,一个匿名占位符。

解答二

Go 有一个类似 foreach的语法。它支持数组/切片、映射和通道。

迭代 数组(array) 或 切片(slice)

// index and value (索引和值)
for i, v := range slice {}

// index only (只要索引)
for i := range slice {}

// value only (只要值)
for _, v := range slice {}

迭代 map:

// key and value (键和值)
for key, value := range theMap {}

// key only (只要键)
for key := range theMap {}

// value only (只要值)
for _, value := range theMap {}

迭代 channel:

for v := range theChan {}

迭代 channel 相当于从通道接收直到它关闭:

for {
    v, ok := <-theChan
    if !ok {
        break
    }
}

本文章首发在 LearnKu.com 网站上。

本译文仅用于学习和交流目的,转载请务必注明文章译者、出处、和本文链接
我们的翻译工作遵照 CC 协议,如果我们的工作有侵犯到您的权益,请及时联系我们。

原文地址:https://learnku.com/docs/go-interview/ho...

译文地址:https://learnku.com/docs/go-interview/ho...

上一篇 下一篇
Summer
贡献者:2
讨论数量: 0
发起讨论 只看当前版本


暂无话题~