【问题标题】:Golang - Generate map with one to many relationGolang - 生成具有一对多关系的地图
【发布时间】:2022-01-08 03:31:32
【问题描述】:

我对 golang 还很陌生,我正在努力从现有映射生成一对多关系映射。

这是我的脚本playground

说明:- 我正在尝试实现第 0 个位置的每个元素与第 1、2、...n 个位置的每个元素的关系。

例如 - [0][0]=>[1][0], [0][0]=>[1][1], [0][1]=>[1][0], [0][1]=>[1][1], [0][0]=>[2][0], [0][1]=>[2][1]

我想要达到的最终输出 -

Array(
[0] => Array
    (
        [0] => Array
            (
                [room_rate_key] => 0|0
                [amount] => 5307.84
            )
        [1] => Array
            (
                [room_rate_key] => 0|0
                [amount] => 5307.84
            )
    )
[1] => Array
    (
        [0] => Array
            (
                [room_rate_key] => 0|0
                [amount] => 5307.84
            )
        [1] => Array
            (
                [room_rate_key] => 0|1
                [amount] => 5246.98
            )
    )
[2] => Array
    (
        [0] => Array
            (
                [room_rate_key] => 0|1
                [amount] => 5246.98
            )
        [1] => Array
            (
                [room_rate_key] => 0|0
                [amount] => 5307.84
            )
    )
[3] => Array
    (
        [0] => Array
            (
                [room_rate_key] => 0|1
                [amount] => 5246.98
            )
        [1] => Array
            (
                [room_rate_key] => 0|1
                [amount] => 5246.98
            )
    )
)

【问题讨论】:

    标签: arrays go go-map


    【解决方案1】:

    使用具有两个值的结构作为映射的键

    使用结构体作为键进行查找

    package main
    
    import "fmt"
    
    type two struct {
        k1 int
        k2 int
    }
    
    func main() {
        v := make(map[two]two)
    
        v[two{1, 1}] = two{37, 38}
        v[two{0, 0}] = two{1, 1}
    
        fmt.Println(v)
    
    }
    

    【讨论】:

    • 您好,谢谢您的回答。但是很抱歉我真的无法理解。你能详细说明一下吗?
    • 请不要误会,我很乐意提供帮助。我查看了您的 go playground 和示例数据。不幸的是,对我来说,它是如此不一致和错误,以至于无法准确地说出你想要做什么
    猜你喜欢
    • 2019-03-01
    • 2022-09-23
    • 2018-01-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-07-10
    • 1970-01-01
    相关资源
    最近更新 更多