gpt4 book ai didi

dictionary - 如何在golang中转换 map 类型

转载 作者:IT王子 更新时间:2023-10-29 01:37:00 25 4
gpt4 key购买 nike

函数 B 返回类型 map[T][]T 如下所示:

type T interface{}

func B() map[T][]T {
result := make(map[T][]T)
return result
}

现在我有一个函数 A 调用函数 B,如下所示:

func A() map[string][]string {
res := B()
return res.(map[string][]string) //I'm sure the type is map[string][]string, so I use assertion, but it doesn't works
}

那么,我该如何制作这种覆盖类型的 map 呢?

最佳答案

你不能。这些是完全不同的类型。您必须逐项复制并键入类型转换:http://play.golang.org/p/uhLPytbhpR

import "fmt"

type T interface{}

func B() map[T][]T {
result := make(map[T][]T)
return result
}

func A() map[string][]string {
res := B()
result := make(map[string][]string)
for k,v := range res {
key := k.(string)
value := make([]string, 0, len(res))
for i := 0; i<len(value); i +=1 {
value[i] = v[i].(string)
}
result[key]= value
}
return result
}

func main() {
fmt.Println("Hello, playground", A())
}

关于dictionary - 如何在golang中转换 map 类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24050232/

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