要迭代数组、切片、字符串、映射或通道,我们可以使用

for _, x := range []int{1, 2, 3} {
  // do something
}

如何同时迭代两个切片或映射?在Python中有没有类似于跟随的东西?

for x, y in range([1, 2, 3], [4, 5, 6]):
    print x, y

推荐答案

不能,但如果长度相同,可以使用range的索引.

package main

import (
    "fmt"
)

func main() {
    r1 := []int{1, 2, 3}
    r2 := []int{11, 21, 31}

    if len(r1) == len(r2) {
        for i := range r1 {
            fmt.Println(r1[i])
            fmt.Println(r2[i])
        }
    }
}

它会返回

1
11
2
21
3
31

Go相关问答推荐

带有Go map[字符串]字符串的持久磁盘

"k8s.io/apimachinery/pkg/runtime.对象(缺少方法DeepCopyBody)

如果添加构建标签,gopls将停止工作

出口上下文值密钥的安全方法?

消费者在NAT中是如何实现的

如何将泛型函数作为参数传递给golang中的另一个函数?

如何使用Gorilla WebSockets实现Http.Hijacker&;alexedwards/scs/v2

即使HTTP服务器正在使用GO和Protobuf、SQL Server启动,请求也不返回结果

租户GUID X的租户不存在self 邮箱帐户的租户(我是唯一的成员)

在Golang中Mergesort的递归/并行实现中出现死锁

在运行时更改 Go lang slog 的日志(log)级别

如何使用 html/template 在 golang 中运行一个范围内的范围

无效操作:v > max(类型参数 T 与 > 不可比较)

使用goqu无法获取响应

gopacket:IP-in-IP 数据包上的解码层

使用 golang 生成 vim

Golang BigInt 部门

为什么 go-cmp Equal() 说 struct 不是完全相等的,即使所有字段都非常相等?

Go Flag 用法 描述 包含 Word 值

我应该明确地创建一个与Belongs To或Has Many对称的关系吗?