`

go语言结构体对象按照时间对象排序

go 
阅读更多
获取用户列表,按照申请时间倒序排序,注:调用标准库的sort.Sort必须要先实现Len(),Less(),Swap() 三个方法.



......
import (
"fmt"
"io/ioutil"
"sort"
"time"
)

type User struct {
ApplicantGuid string `json:"applicant_guid"`
ApplyTime string `json:"apply_time"`
UsedLicense int `json:"used_license"`
Applicant string `json:"applicant"`
}

type newUserList []User 

func (I newUserList) Len() int { 
    return len(I) 


func (I newUserList) Less(i, j int) bool { 
    return stringConvertTime(I[i].ApplyTime) > stringConvertTime(I[j].ApplyTime) 


func (I newUserList) Swap(i, j int) { 
    I[i], I[j] = I[j], I[i] 


例如对user_list进行排序:
TestData["license_detail"] = `{
                "user_list":[
                        {
                                "applicant_guid":"guid",
                                "apply_time":"2018-03-06 20:44:51",
                                "used_license":"10",
                                "applicant":"tim1"
                        },
                        {
                                "applicant_guid":"guid11",
                                "apply_time":"2018-03-07 20:44:33",
                                "used_license":"10",
                                "applicant":"tim2"
                        },
                        {
                                "applicant_guid":"guid_tin",
                                "apply_time":"2018-03-05 20:44:33",
                                "used_license":"10",
                                "applicant":"tim3"
                        }
                ]
        }`

var users []User
遍历user_list获取到users
sort.Sort(newUserList(users))进行排序可以得到正确排序
分享到:
评论

相关推荐

    go语言写的学生管理系统.zip

    Go语言,又称为Golang,是Google推出的一种静态类型的、编译型的、并发型且具有垃圾回收功能的编程语言,因其简洁的语法和高效的性能,在后端开发中越来越受欢迎。 Go语言在设计时就考虑到了并发处理和网络编程,这...

    Go语言编程内含源码以及说明书可以自己运行复现.zip

    Go语言,也称为Golang,是由Google开发的一种静态类型的、编译型的、并发型的、垃圾回收的、C风格的编程语言。本压缩包包含了关于Go语言编程的多个方面,包括源码和说明书,旨在帮助学习者深入理解并能够实际运行和...

    自己整理好的go语言设计模式

    Go语言的接口机制以及结构体的灵活使用使得设计模式的实现非常直观,易于理解和维护。上述两种模式只是Go语言中实现设计模式的两种方法,更多的设计模式同样可以在Go语言中以简洁和优雅的方式实现。

    Go语言入门到精通课程目录1

    Go语言,也称为Golang,是由Google开发的一种静态类型的、编译式的、并发型且具有垃圾回收功能的编程语言。本课程将引导你从入门到精通,深入理解Go语言的各项特性和常用技术。 **初识篇** 1. **环境安装**:首先...

    利用 Go 语言实现常用的数据结构与算法。.zip

    Go 语言的 `sort` 包提供了对切片进行排序的功能。 2. 搜索算法:如线性搜索、二分搜索。二分搜索在已排序的列表中查找元素特别有效。 3. 动态规划:用于解决最优化问题,如背包问题、最长公共子序列等。在 Go 中...

    Go语言四十二章经

    2. **结构体(struct)**:结构体是Go语言的基本面向对象构造。 3. **接口**:接口定义了一组方法(没有实现),任何实现了这些方法的类型都隐式地实现了接口。 ### 测试与优化 1. **单元测试**:Go语言提供了强大的...

    用 Go 语言实现的数据结构与算法.zip

    本资料包“用 Go 语言实现的数据结构与算法.zip”中的“my_resource”文件可能包含了上述各种数据结构的实现代码、练习题以及相关的学习资料,对于理解和实践Go语言中的数据结构与算法非常有帮助。通过学习这些内容...

    Go-Go中的数据结构和算法实现

    Go语言内置了sort包,提供了对整数、浮点数和自定义类型的排序。常见的排序算法如冒泡排序、选择排序、插入排序、快速排序、归并排序等,都有其特定的适用场景。查找算法如顺序查找、二分查找、哈希查找等也是解决...

    go语言编程教程(go-0.1-0.3)

    ### Go语言编程教程知识点概述 #### 一、引言 本教程旨在为初学者提供一套全面而详实的Go语言编程指南。相比其他资源如`go-course(1-3)`和`effective-go`,该教程提供了更为丰富的示例、练习题及其解答。以下是...

    Go-Qbs是一个Go语言的ORM

    Go-Qbs是一个专门为Go语言设计的对象关系映射(ORM)框架,它的目标是为Go开发者提供一种简单、高效的方式来操作数据库。ORM允许程序员使用面向对象的编程方式来处理数据库操作,而无需直接编写SQL语句,从而提高了...

    go入门指南

    Go语言,又称为Golang,是由Google开发的一种静态、强类型、编译型、并发型,并具有垃圾回收功能的编程语言。它借鉴了C语言的语法,加入了包管理和垃圾回收机制,以及并发编程模式,非常适合于构建运行高效的网络...

    c语言进阶的编程技巧200例+go语言某培训机构学习笔记

    Go语言的特色包括轻量级线程(goroutines)、通道(channels)进行并发操作,以及内置的接口类型,使得面向对象编程更为简洁。在某培训机构的学习笔记中,可能会涉及Go语言的基本语法、类型系统、包管理、错误处理...

    慕课 liuyubobobo「玩转数据结构」课程的 Go 语言实现版本.zip

    Go语言中没有内置链表类型,但可以通过结构体和指针实现。 3. **栈**:栈是一种后进先出(LIFO)的数据结构,常被用于函数调用、表达式求值等场景。在Go语言中,可以使用切片模拟栈的操作,如push(入栈)和pop...

    Go语言程序设计中文版[人民邮电大学出版]

    8.1.4 处理Go语言二进制文件 307 8.1.5 处理自定义的二进制文件 309 8.2 归档文件 317 8.2.1 创建zip归档文件 317 8.2.2 创建可压缩的tar包 319 8.2.3 解开zip归档文件 321 8.2.4 解开tar归档文件 322...

    Go-Golang算法和数据结构

    在编程领域,算法和数据结构是核心技术之一,对于任何编程语言来说都至关重要,Go语言(Golang)也不例外。Go语言以其简洁的语法、高效的性能以及内置的并发支持,成为了很多开发者首选的系统级编程语言。本资料包...

    Go语言使用sort包对任意类型元素的集合进行排序的方法

    在Go语言中,对任意类型元素的集合进行排序是一项常见的任务。Go语言标准库中的sort包提供了这样的功能,但它要求集合中的元素必须实现sort.Interface接口。这个接口包含三个方法:Len()、Less(i, j int) bool和Swap...

    Algorithm-Go-Algorithm.zip

    Go语言,又称为Golang,是Google开发的一种静态类型的、编译式的、并发型且具有垃圾回收功能的编程语言,其设计目标是提高开发者的生产效率和程序运行性能。在这个名为"Algorithm-Go-Algorithm.zip"的压缩包中,我们...

Global site tag (gtag.js) - Google Analytics