当前位置: 首页 > news >正文

网站后台文档google关键词工具

网站后台文档,google关键词工具,玉环专业做网站,哈密网站制作公司原文链接: Go 语言中排序的 3 种方法 在写代码过程中,排序是经常会遇到的需求,本文会介绍三种常用的方法。 废话不多说,下面正文开始。 使用标准库 根据场景直接使用标准库中的方法,比如: sort.Intsso…

原文链接: Go 语言中排序的 3 种方法

在写代码过程中,排序是经常会遇到的需求,本文会介绍三种常用的方法。

废话不多说,下面正文开始。

使用标准库

根据场景直接使用标准库中的方法,比如:

  • sort.Ints
  • sort.Float64s
  • sort.Strings

举个例子:

s := []int{4, 2, 3, 1}
sort.Ints(s)
fmt.Println(s) // [1 2 3 4]

自定义比较器

使用 sort.Slice 方法排序时,可以自定义比较函数 less(i, j int) bool,这样就可以根据需要按不同的字段进行排序。

如果想要稳定排序的话,就使用 sort.SliceStable 方法。

举个例子:

family := []struct {Name stringAge  int
}{{"Alice", 23},{"David", 2},{"Eve", 2},{"Bob", 25},
}// Sort by age, keeping original order or equal elements.
sort.SliceStable(family, func(i, j int) bool {return family[i].Age < family[j].Age
})
fmt.Println(family) // [{David 2} {Eve 2} {Alice 23} {Bob 25}]

自定义数据结构

使用 sort.Sort 或者 sort.Stable 方法,它们可以对任意实现了 sort.Interface 的数据结构排序。

type Interface interface {// Len is the number of elements in the collection.Len() int// Less reports whether the element with// index i should sort before the element with index j.Less(i, j int) bool// Swap swaps the elements with indexes i and j.Swap(i, j int)
}

意思就是说,只要某一个数据结构实现了 Len() intLess(i, j int) boolSwap(i, j int) 这三个方法,那么就可以使用 sort.Sort 来排序。

举个例子:

type Person struct {Name stringAge  int
}// ByAge implements sort.Interface based on the Age field.
type ByAge []Personfunc (a ByAge) Len() int           { return len(a) }
func (a ByAge) Less(i, j int) bool { return a[i].Age < a[j].Age }
func (a ByAge) Swap(i, j int)      { a[i], a[j] = a[j], a[i] }func main() {family := []Person{{"Alice", 23},{"Eve", 2},{"Bob", 25},}sort.Sort(ByAge(family))fmt.Println(family) // [{Eve 2} {Alice 23} {Bob 25}]
}

字典排序

我们都知道,字典是无序的,具体原因可以看之前写的这篇文章 Go 语言 map 如何顺序读取?

如果想要字典按 key 或者 value 排序的话,可以这样做。

m := map[string]int{"Alice": 2, "Cecil": 1, "Bob": 3}keys := make([]string, 0, len(m))
for k := range m {keys = append(keys, k)
}
sort.Strings(keys)for _, k := range keys {fmt.Println(k, m[k])
}
// Output:
// Alice 2
// Bob 3
// Cecil 1

以上就是本文的全部内容,如果觉得还不错的话欢迎点赞转发关注,感谢支持。


参考文章:

  • https://yourbasic.org/golang/how-to-sort-in-go/#performance-and-implementation

推荐阅读:

  • Go 语言 map 是并发安全的吗?
  • Go 语言切片是如何扩容的?
  • Go 语言数组和切片的区别
  • Go 语言 new 和 make 关键字的区别
  • 为什么 Go 不支持 []T 转换为 []interface
  • 为什么 Go 语言 struct 要使用 tags
http://www.tj-hxxt.cn/news/94031.html

相关文章:

  • 做设计在哪个网站投递简历策划公司
  • 石家庄网络开发公司兰州网络推广优化怎样
  • 哪里有好的免费的网站建设淘数据
  • 小白如何做网站短视频seo代理
  • 零基础学做网站适合员工的培训课程
  • 做动态网站需要什么书网站维护收费标准
  • 哪个网站做供求信息长春疫情最新情况
  • 网站页面权重收录批量查询
  • 海口cms建站系统怎样推广自己的网站
  • 天马网络网站百度热搜榜单
  • 党建方面做的最好的素材网站百度seo排名优化价格
  • 三站合一的网站怎么做教程西安网站seo排名优化
  • php做网站怎么样汽车网站建设
  • 西安广告公司官网整站优化
  • 学校教育网站模板如何开发一款app软件
  • 云南建设厅网站首页seo网站排名优化公司
  • 湖北金扬建设网站b2b b2c c2c o2o区别
  • 赤峰市网站建设上海seo推广平台
  • 微信公众号网站制作百度联盟app
  • 有专门教做家具的网站百度站长收录
  • 郑州网站建设如何网络广告一般是怎么收费
  • 宝山苏州网站建设seo公司北京
  • 做网站美工排版找培训机构的平台
  • dedecms 网站导航网络推广用什么软件好
  • 澳洲黄页百事通如何优化关键词提升相关度
  • 国外工业设计网站成都最新疫情
  • 徐州网站排名优化免费的发帖收录网站
  • Java做网站的学习路线软文范例500字
  • xml文件里做网站超链接关键词上首页软件
  • 手机网站静态模板下载领硕网站seo优化