gpt4 book ai didi

go - 将配对与嵌套 map 结合

转载 作者:行者123 更新时间:2023-12-01 22:22:36 25 4
gpt4 key购买 nike

问题:

  • 要从CSV文件中读取数据并基于此组合warehouse[item[batch, qty]]
  • 对其进行分组
  • [批次,数量]对应按顺序插入

  • 方法:
  • 我认为最好的方法是结合使用mappair/tuple

  • 代码:

    package main

    import "fmt"

    type Pair struct {
    Key string
    Value float64
    }

    func main() {
    fmt.Println("Hello, 世界")
    var inventory = map[string]map[string][]Pair{} //warehouse[item[batch, qty]]
    fmt.Printf("%T\n", inventory)
    inventory["DMM"] = map[string][]Pair{} // map[string]map[string][]main.Pair
    fmt.Printf("%T\n", inventory["DMM"])
    inventory["DMM"]["Helmet"] = []Pair{}
    fmt.Printf("%T = %v\n", inventory["DMM"]["Helmet"])

    inventory["DMM"]["Helmet"] = append(inventory["DMM"]["Helmet"], Pair{"Jan", 10})
    fmt.Printf("%T = %v\n", inventory["DMM"]["Helmet"][0])
    }

    代码错误
    Hello, 世界
    map[string]map[string][]main.Pair
    map[string][]main.Pair
    []main.Pair = %!v(MISSING)
    main.Pair = %!v(MISSING)

    注释
  • 看起来我能够正确输入warehouseitem组合,但是对于将Pair输入/插入/添加/添加到该组合中,这是不正确的!
  • 最佳答案

    我认为您建立数据结构的方式没有任何问题,只是您使用Printf()的方式没有任何问题。您在格式字符串中有2个格式规范(%T%v),但只能传递一个值。您可以像这样回收参数:

      fmt.Printf("%T = %[1]v\n", inventory["DMM"]["Helmet"])

    您也可以只使用一个文字来构建数据结构:
      inventory := map[string]map[string][]Pair{"DMM" : {"Helmet": {{Key: "Jan", Value: 10}}}}

    关于go - 将配对与嵌套 map 结合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62183671/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com