首页 > 其他分享 >[Go] go for range循环map是无序的 变成有序

[Go] go for range循环map是无序的 变成有序

时间:2024-03-03 20:35:08浏览次数:22  
标签:map keys range 循环 go myMap

go for range循环map是无序的 , 这个是go team团队 有意为之

在进行循环遍历的时候 , 生成了一个随机数作为遍历开始的位置

可以for range循环map取出所有的key , sort.Strings(keys) , 排序所有的keys

再循环所有的keys , 按这个循环取出map里的值

如果不依赖map中的key的话 , 或者map的value是个结构体 , 里面有key的值 , 不依赖map的话可以把它转成slice

类似下面这样

func SortMap(youMap map[string]interface{}) []interface{} {
    keys := make([]string, 0)
    for k, _ := range youMap {
        keys = append(keys, k)
    }
    myMap := make([]interface{}, 0)
    sort.Strings(keys)
    for _, k := range keys {
        myMap = append(myMap, youMap[k])
    }
    return myMap
}

标签:map,keys,range,循环,go,myMap
From: https://www.cnblogs.com/cheyunhua/p/18050640

相关文章

  • Java流程控制11:break、continue、goto
    breakcontinue1.break在任何循环语句的主体部分,均可用break控制循环的流程。break用于强行退出循环,不执行循环中剩余的语句。(break语句也在switch语句中使用)2.continue语句用在循环语句体中,用于终止某次循环过程,即跳过循环体中尚未执行的语句,接着进行下一次是否......
  • 手写HashMap基础部分代码
    代码展示:packagecom.north.hashmap;importjava.util.Map;/***@AuthorNorth*@Date2024/3/3*手写HashMap*/@SuppressWarnings("all")publicclassMyHashMap<K,V>{/***哈希表*/privateNode<K,V>[]table;......
  • map
    mapmap(func,iterable)是一个功能性函数,用于处理数据。它把iterable中的数据一个一个拿出来,扔到func做处理,并通过调用迭代器来获取返回值。参数:func:函数(内置函数或自定义函数)iterable:可迭代对象(容器类型数据,range对象,迭代器)返回值:迭代器示例把列表中的元......
  • go语言发展-引领云端
    Go是非常年轻的一门语言,它的主要目标是“兼具Python等动态语言的开发速度和C/C++等编译型语言的性能与安全性”。Go是非常年轻的一门语言,它的主要目标是“兼具Go语言(或Golang)起源于2007年,并在2009年正式对外发布。从今天起要在14天系统的规划学习Go语言,有兴趣的朋友一......
  • Go 100 mistakes - #95: Not understanding stack vs. heap
       ......
  • 根据建表sql语句生成go的struct代码工具
    sql2struct一个根据"CREATETABLE"建表语句生成对应的Go语言结构体的工具,暂只支持MySQL表。开发目的在github中找到一些sql2struct,但要么是chrome插件,要么是在线工具,要么是需要连接MySQL,不是很方便。本sql2struct根据SQL文件中的建表语句来生成Go的struct,可集成......
  • 多线程限流工具类-Semaphore
    Semaphore介绍Semaphore(信号量)是JAVA多线程中的一个工具类,它可以通过指定参数来控制执行线程数量,一般用于限流访问某个资源时使用。Semaphore使用示例需求场景:用一个核心线程数为6,最大线程数为20的线程池执行任务,但是要求最多只能同时运行3个线程代码:publicclassdemo{......
  • Go 100 mistakes - #94: Not being aware of data alignment
      ......
  • Go - Optimization - instruction-level parallelism (ILP)
      ......
  • Halcon HObject和C#的Bitmap图像互转
    转载:https://blog.51cto.com/u_15088375/3247784#:~:text=HalconHObject和C%23的Bitmap图像互转1HalconHObject和C%23的Bitmap图像互转2一,Bitmap转HObject3方法一:HOperatorSet.GenImageInterleaved直接转换4方法二:C%23获取图像各个通道内存首地址和HOperatorSet.GenIma......