TSINGSEE青犀视频研发团队在EasyDSS的开发过程中,需要将后台的数据排序后返回给前端显示,因此需要对从数据库中取出的数据进行排序。在 Go 语言中大量使用的都是 slice 类型的数据,因此编写对应的数据。
其实golang的排序思路和C、C++ 有些差别。C默认是对数组进行排序, C++是对一个序列进行排序,Go则更宽泛一些,待排序的可以是任何对象, 虽然很多情况下是一个slice(分片, 类似于数组),或是包含slice的一个对象。
对于 slice 的基本排序方式如下:
func main() {
//定义一个数字 slice
sortList := []int{2, 13, 16, 17, 2, 5}
//排序,实现比较函数即可
sort.Slice(sortList, func(i, j int) bool {
return sortList[i] < sortList[j]
})
fmt.Printf("sort list:%v", sortList)
}
其上代码输出为sort list :[2 2 5 13 16 17]
其中 func(i, j int) bool{} 为实现的比较函数,其中i 和 j 为 slice 的索引。如果 slice 中存储的是一个对象,在此函数中实现对象的比较大小方法即可。
EasyDSS视频直播点播平台内涉及到很多关于golong语言的知识,我们也是在一边学习中一边进步。当然除了EasyDSS视频平台外,TSINGSEE青犀视频还有其他可靠稳定的视频流媒体平台,比如支持RTSP协议的EasyNVR、支持国标GB28181协议的EasyGBS以及能够对接私有协议的EasyCVR平台。如果大家还想了解更多,欢迎联系我们,视频智能分析平台皆可获取测试账号直接测试。