我的编程空间,编程开发者的网络收藏夹
学习永远不晚

怎么在golang中对Map进行键值自定义排序

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

怎么在golang中对Map进行键值自定义排序

本篇文章为大家展示了怎么在golang中对Map进行键值自定义排序,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。

golang适合做什么

golang可以做服务器端开发,但golang很适合做日志处理、数据打包、虚拟机处理、数据库代理等工作。在网络编程方面,它还广泛应用于web应用、API应用等领域。

//自定义结构体,用来自定义排序type RecentlyUpdateListMapSorter []map[string]interface{}//根据MapSorter.Keys进行倒序排序func (ms *RecentlyUpdateListMapSorter) SortReverse() { sort.Sort(sort.Reverse(ms))}//自定义排序方法(Len(),Less(),Swap())func (ms *RecentlyUpdateListMapSorter) Len() int { return len(*ms)}func (ms *RecentlyUpdateListMapSorter) Less(i, j int) bool { t1, _ := time.Parse(timex.Layout_Normal, core.ToString((*ms)[i]["UpdateTime"])) t2, _ := time.Parse(timex.Layout_Normal, core.ToString((*ms)[j]["UpdateTime"])) return t1.Before(t2)}func (ms *RecentlyUpdateListMapSorter) Swap(i, j int) { (*ms)[i], (*ms)[j] = (*ms)[j], (*ms)[i]}

补充:golang中map声明及初始化

1 map简介

map是一堆键值对的未排序集合,类似Python中字典的概念,它的格式为map[keyType]valueType,是一个key-value的hash结构。

map的读取和设置也类似slice一样,通过key来操作,只是slice的index只能是int类型,而map多了很多类型,可以是int,可以是string及所有完全定义了==与!=操作的类型。

在C++/Java中,map一般都以库的方式提供,比如在C++中是STL的std::map<>,在Java中是Hashmap<>,在这些语言中,如果要使用map,事先要引用相应的库。而在Go中,使用map不需要引入任何库,并且用起来也更加方便。

2 map声明

声明map的语法如下

var map变量名 map[key] value

其中:key为键类型,value为值类型

例如:value不仅可以是标注数据类型,也可以是自定义数据类型

var numbers map[string] intvar myMap map[string] personInfo    personInfo为自定义结构体,存储个人信息,定义如下type personInfo struct {<!-- -->    ID string    Name string    Address string}

3 map初始化

3.1 直接初始化(创建)

rating := map[string] float32 {"C":5, "Go":4.5, "Python":4.5, "C++":2 }myMap := map[string] personInfo{"1234": personInfo{"1", "Jack", "Room 101,..."},}var m1 map[string]int=map[sting]int{"key":0}

3.2 通过make初始化(创建)

Go语言提供的内置函数make()可以用于灵活地创建map。

创建了一个键类型为string,值类型为int的map

numbers := make(map[string] int)

创建了一个键类型为string,值类型为personInfo的map

myMap = make(map[string] personInfo)

也可以选择是否在创建时指定该map的初始存储能力,如创建了一个初始存储能力为5的map

myMap = make(map[string] personInfo, 5)

创建后初始化如下:

numbers["one"] = 1 myMap["1234"] = personInfo{"1", "Jack", "Room 101,..."}

4 map元素查找

在Go语言中,map的查找功能设计得比较精巧。判断是否成功找到特定的键,不需要检查取到的值是否为nil,只需查看第二个返回值。要从map中查找一个特定的键,可以通过下面的代码来实现:

value, ok := myMap["1234"]if ok{    //处理找到的value}

5 map元素修改(赋值)

5.1 直接修改

numbers["one"] = 11

5.2 间接修改

map是一种引用类型,如果两个map同时指向一个底层,那么一个改变,另一个也相应的改变。

numbersTest := numbersnumbersTest["one"] = "111"

现在numbers["one"]的值变为"111"了。

6 map元素删除

Go语言提供了一个内置函数delete(),用于删除容器内的元素。如

delete(number, "one")

上述内容就是怎么在golang中对Map进行键值自定义排序,你们学到知识或技能了吗?如果还想学到更多技能或者丰富自己的知识储备,欢迎关注编程网行业资讯频道。

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

怎么在golang中对Map进行键值自定义排序

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

怎么在golang中对Map进行键值自定义排序

本篇文章为大家展示了怎么在golang中对Map进行键值自定义排序,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。golang适合做什么golang可以做服务器端开发,但golang很适合做日志处理、
2023-06-14

在 GoLang 中对自定义结构体数组进行排序

在GoLang中,对自定义结构体数组进行排序是一个常见的需求。通过对数组中的元素进行比较和交换,我们可以按照特定的规则对结构体数组进行排序。在排序过程中,我们可以使用不同的排序算法,例如冒泡排序、插入排序或快速排序等。无论使用哪种算法,我们
在 GoLang 中对自定义结构体数组进行排序
2024-02-09

怎么在Java中对TreeSet进行自定义类型的排序

怎么在Java中对TreeSet进行自定义类型的排序?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。Java可以用来干什么Java主要应用于:1. web开发;2. Androi
2023-06-06

怎么在python中使用sorted对键和值进行排序

今天就跟大家聊聊有关怎么在python中使用sorted对键和值进行排序,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。Python的优点有哪些1、简单易用,与C/C++、Java、C
2023-06-14

PHP 中按自定义排序规则对数组进行排序,保留原始键名

在 php 中,使用 uasort() 函数可按自定义排序规则对数组进行排序,同时保留原始键名。自定义比较函数是一个接受两个元素作为输入并返回整数的函数:负数表示前者小于后者,零表示相等,正数表示前者大于后者。PHP 中如何按自定义排序规则
PHP 中按自定义排序规则对数组进行排序,保留原始键名
2024-05-04

Java项目中怎么对Map进行排序

这篇文章将为大家详细讲解有关Java项目中怎么对Map进行排序,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。 Java Map的排序实例详解要对Map中的key-value键值对进行排序,可
2023-05-31

在Spring4中怎么对@Value进行自定义

本篇文章为大家展示了在Spring4中怎么对@Value进行自定义,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。@Value在Spring中,功能非常强大,可以注入一个配置项,可以引用容器中的Bea
2023-05-31

怎么在python中对series进行排序

这篇文章将为大家详细讲解有关怎么在python中对series进行排序,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。Python主要用来做什么Python主要应用于:1、Web开发;2、数据
2023-06-14

怎么在java中对Sorted进行排序

这篇文章给大家介绍怎么在java中对Sorted进行排序,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。Java有哪些集合类Java中的集合主要分为四类:1、List列表:有序的,可重复的;2、Queue队列:有序,可重
2023-06-14

在 PHP 中使用自有函数对数组按值进行排序,保留键名

在 php 中,使用自有函数对数组按值排序并保留键名的方法是:获取数组的所有值并按其排序。获取排序后的值的键。将排序后的值与原数组的键重新组合。在 PHP 中使用自有函数对数组按值进行排序,保留键名前言在 PHP 中,sort() 函数
在 PHP 中使用自有函数对数组按值进行排序,保留键名
2024-05-05

怎么在java中对数组进行排序

这期内容当中小编将会给大家带来有关怎么在java中对数组进行排序,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。Java是什么Java是一门面向对象编程语言,可以编写桌面应用程序、Web应用程序、分布式系统
2023-06-14

怎么在python中对元组进行排序

本篇文章为大家展示了怎么在python中对元组进行排序,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。python的数据类型有哪些?python的数据类型:1. 数字类型,包括int(整型)、long
2023-06-14

怎么在java中对集合进行排序

这篇文章将为大家详细讲解有关怎么在java中对集合进行排序,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。常用的java框架有哪些1.SpringMVC,Spring Web MVC是一种基于
2023-06-14

PHP 中如何使用自定义比较函数对数组进行排序,并保留键名?

php 中使用自定义比较函数可以对数组进行排序,并保留键名。为了做到这一点,可以使用 usort() 函数,它需要一个数组和一个回调函数作为参数。回调函数接收两个数组元素,返回一个整数 (-1、0 或 1) 来指示排序顺序。PHP 中使用自
PHP 中如何使用自定义比较函数对数组进行排序,并保留键名?
2024-05-04

在 PHP 中,如何仅按数组某些键值对对数组进行排序,保留键名?

在 php 中根据键值对对数组进行排序时,可以使用 uasort() 函数,接收一个回调函数对键值进行比较,保留键名。例如,按员工薪酬对员工记录排序,可以使用 uksort() 函数,从每个元素中提取薪酬值进行比较,从而按薪酬从低到高对记录
在 PHP 中,如何仅按数组某些键值对对数组进行排序,保留键名?
2024-05-04

怎么在Java中对多线程进行排序

怎么在Java中对多线程进行排序?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。Java的特点有哪些Java的特点有哪些1.Java语言作为静态面向对象编程语言的代表,实现了面向
2023-06-14

怎么在linux中对awk数组进行排序

怎么在linux中对awk数组进行排序?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。代码如下:[chengmo@localhost ~]$ awk BEGIN{
2023-06-13

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录