登录
首页 >  Golang >  Go问答

使用for循环遍历切片并在结构中添加切片

来源:stackoverflow

时间:2024-02-22 21:54:24 331浏览 收藏

有志者,事竟成!如果你在学习Golang,那么本文《使用for循环遍历切片并在结构中添加切片》,就很适合你!文章讲解的知识点主要包括,若是你对本文感兴趣,或者是想搞懂其中某个知识点,就请你继续往下看吧~

问题内容

我需要对切片进行 for 循环以显示结构的值。我想做一些家庭为 [0]、食物为 [1]、饮料为 [2] 的事情

package main

import (
    "fmt"
)

type item struct {
    Category[3] int
    Quantity int
    Unitcost float64
}

categoryslice = []string{"Household","Food","Drink"}


func main() {
    shoppinglists := []shoppinglist{

        {
            Category: categoryslice[0],
            Quantity: 3,
            Unitcost: 1,
        },
        {
            Category: categoryslice[1],
            Quantity: 1,
            Unitcost: 3,
        },
    }

    fmt.Println("Shopping List Contents:")
    for _, x := range shoppinglists {
        fmt.Println("Category: ", x.Category," Quantity: ", x.Quantity, " Unit Cost: ", x.Unitcost)
    }
    
}

解决方案


不推荐,但您可以将 struct 转换为 map 并迭代生成的 map

将此方法添加到您的结构中:

func (sl *shoppinglist) tomap() map[string]interface{} {
    return map[string]interface{}{
        "category":  sl.category,
        "items":     sl.items,
        "quantity":  sl.quantity,
        "unit_cost": sl.unitcost,
    }
}

然后像这样迭代切片中的每个地图

for _, e := range arr {
    for k ,v := range e.ToMap() {
        fmt.Printf("%s: %v\n", k, v)
    }
    fmt.Println()
}

希望我有帮助:)

今天关于《使用for循环遍历切片并在结构中添加切片》的内容介绍就到此结束,如果有什么疑问或者建议,可以在golang学习网公众号下多多回复交流;文中若有不正之处,也希望回复留言以告知!

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>