1.1. 在 Go 中如何使用 foreach 语法?
解答一:
带有“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
}
}
本译文仅用于学习和交流目的,转载请务必注明文章译者、出处、和本文链接
我们的翻译工作遵照 CC 协议,如果我们的工作有侵犯到您的权益,请及时联系我们。