Golang中如何使用range进行迭代操作

Golang中如何使用range进行迭代操作 尊敬的专家:

我想请教一些关于Go语言编程的问题。作为Go编程的初学者,我不知道该如何解决我的问题。我不确定问题是否出在数组、切片、范围或其他方面,但我希望输出结果与下方示例保持一致。

数组结构如下:

	Company=:[{1 Toyota} {2 Izuzu} {3 Ford}]
    Cars: [{A Hilux} {B Hi-Ace}][{A DMAX} {B Bus}][{A Ranger}{B Focus}]
    Color:[{White Red}][{Black Red}][{Blue Red}][{Blue Red}][{Blue Red}][{Blue Red}]

我希望输出格式如下:

1 Toyota
   A Hilux
	  白色
	  红色
   B Hi-Ace
	  白色
	  红色
2 Izuzu
   A DMAX
	  白色
	  红色
   B Bus
	  白色
	  红色
3 Ford
   A Ranger
	  白色
	  红色
   B Focus
	  白色
	  红色

请提供帮助。

提前感谢。


更多关于Golang中如何使用range进行迭代操作的实战教程也可以访问 https://www.itying.com/category-94-b0.html

4 回复

这份文档将帮助您解决问题。
示例代码:range用法

更多关于Golang中如何使用range进行迭代操作的实战系列教程也可以访问 https://www.itying.com/category-94-b0.html


@CurtGreen 我能说脏话吗?■■■■ 你搞定了兄弟……非常感谢……在这个论坛上怎么给你更多积分?

我不确定您想要实现什么目标,是想练习切片和range操作还是其他什么。您的提问启发我编写了一个小示例,展示如何通过结构体和range来实现您想要的输出:https://play.golang.org/p/yUUdnqGNO-0

func main() {
    fmt.Println("hello world")
}

在Go语言中,使用range进行迭代操作可以很好地处理嵌套数据结构。根据您的需求,需要将公司、车型和颜色进行关联迭代。以下是完整的解决方案:

package main

import "fmt"

type Company struct {
    ID   int
    Name string
}

type Car struct {
    Code string
    Name string
}

type Color struct {
    Name string
}

func main() {
    // 定义数据结构
    companies := []Company{
        {1, "Toyota"},
        {2, "Izuzu"},
        {3, "Ford"},
    }
    
    cars := [][]Car{
        {
            {"A", "Hilux"},
            {"B", "Hi-Ace"},
        },
        {
            {"A", "DMAX"},
            {"B", "Bus"},
        },
        {
            {"A", "Ranger"},
            {"B", "Focus"},
        },
    }
    
    colors := []Color{
        {"白色"},
        {"红色"},
    }
    
    // 使用range进行迭代
    for i, company := range companies {
        fmt.Printf("%d %s\n", company.ID, company.Name)
        
        for _, car := range cars[i] {
            fmt.Printf("   %s %s\n", car.Code, car.Name)
            
            for _, color := range colors {
                fmt.Printf("\t  %s\n", color.Name)
            }
        }
    }
}

输出结果:

1 Toyota
   A Hilux
	  白色
	  红色
   B Hi-Ace
	  白色
	  红色
2 Izuzu
   A DMAX
	  白色
	  红色
   B Bus
	  白色
	  红色
3 Ford
   A Ranger
	  白色
	  红色
   B Focus
	  白色
	  红色

这个解决方案使用了三层嵌套的range循环:

  1. 第一层遍历公司列表
  2. 第二层遍历对应公司的车型
  3. 第三层遍历颜色列表

每个range循环都返回索引和值,通过索引将不同数组中的数据进行正确关联。

回到顶部