是否要在Go地图上定义键?

马西奥

假设我们有一个map[int]string,我们想要这样定义它:

var a map[int]string =  {
 1: "some"
 3: "value"
 4: "maintained"
 7: "manually"
 // more 100 entries...
}

我想手动维护值,因为它们没有模式,但是键有。有没有办法像使用enum值那样维护键列表1 << 1 + iota

我不是问是否有可能将iota用作地图键(不幸的是,它不是AFAIK),只是有一种同样优雅的方法可以在定义的序列上创建键。

乔什夫

最好的选择是将有序值存储为切片,然后使用init函数生成映射,如下所示:

var a map[int]string
var vals = []string{
    "some",
    "value",
    "maintained",
    "manually",
}

func init() {
    a = make(map[int]string)
    for idx, val := range vals {
        a[idxToKey(idx)] = val
    }
}

func idxToKey(i int) int {
    return 1<<1 + i
}

Go Playground上运行它

您可以更改idxToKey为所需的任何转换。在这种情况下,我已经使用了您提供的那一个,但是可以是任何东西。参数将放到通常放置iota关键字的位置。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在Go中将指针用作地图键是否安全?

来自分类Dev

以变量为键的地图上的模式匹配

来自分类Dev

不要在Android中点击的地图上关闭infoWindow

来自分类Dev

Google Maps API:要在地图上添加街景视图吗?

来自分类Dev

Google地图上的控制键+单击事件

来自分类Dev

在地图上的多个键检查中设置布尔变量基础

来自分类Dev

防止使用键盘键在 Google 地图上移动

来自分类Dev

将结构作为Go地图中的键

来自分类Dev

自定义图块不会显示在GoogleMap地图上

来自分类Dev

在Google地图上绘制“自定义”圆

来自分类Dev

Android-在自定义地图上绘制GPS坐标

来自分类Dev

自定义注释视图未显示在地图上

来自分类Dev

在Android地图上调整自定义标记的大小

来自分类Dev

AngularJS在地图上显示用户的预定义坐标

来自分类Dev

谷歌地图上的自定义输入字段可能吗?

来自分类Dev

是否可以使用ggplot在地图上叠加散点图?

来自分类Dev

检测用户是否在Google地图上“取消选择”标记

来自分类Dev

在并发环境中从地图上删除是否安全?在高朗

来自分类Dev

是否可以使用ggplot在地图上叠加散点图?

来自分类Dev

如何知道地图上的标记是否相互接触

来自分类Dev

我如何知道注释是否已经在地图视图上

来自分类Dev

查找地图是否包含多个键

来自分类Dev

是否有可以替换键的分类地图

来自分类Dev

药剂检查地图是否包含键列表

来自分类Dev

是否有可以替换键的分类地图

来自分类Dev

如果没有经纬度值,请不要在地图上标绘

来自分类Dev

当其他线程在地图上执行插入/删除操作时,迭代地图键

来自分类Dev

Xcode / iOS:是否需要在功能中打开地图?

来自分类Dev

在地图上过滤

Related 相关文章

热门标签

归档