gpt4 book ai didi

dictionary - 将 map[string]string 转换为 map[someStruct]string

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

我有一个结构

type mapKey string

var key1 mapKey = "someKey"
var key2 mapKey = "anotherKey"

type SampleMap map[mapKey]string

传入的 http 调用必须是 map[string]string

我需要将其类型转换为 业务逻辑中的SampleMap

正常转换:Sample(request) 出错,无法将类型 map[string]string 转换为 SampleMap。由于它们具有相同的内部类型,为什么会发生此错误以及解决方法是什么?

我真的不想写一个函数把每个字符串映射到mapKey,然后构造SampleMap。

最佳答案

没有将映射或数组从一种类型强制转换为另一种类型的捷径,就像个别类型一样(例如 mapKey("str") )。

不过设置键并不难,你可以只用一个 for 循环:

params := map[string]string{"someKey": "bar"}

// Copy to type SampleMap
for k, v := range params {
m[mapKey(k)] = v
}

虽然有两个额外的类型(对于键和映射)没有多大意义,除非您通过使用访问器以某种方式强制限制,不允许直接访问。这感觉像是从另一种语言翻译过来的代码?

在没有其他细节的情况下,我会这样做:

// These are the recognised key types for params
const (
key1 = "someKey"
key2 = "anotherKey"
)

// Work with this sort of map till you come to convert values:
// When checking keys or using them, use the constants above.
params map[string]string
myVal := params[key1]

这里使用两种类型来控制使用哪些键的基本原理是什么?

关于dictionary - 将 map[string]string 转换为 map[someStruct]string,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46861613/

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