首页 > 其他分享 >golang sort.Slice用法

golang sort.Slice用法

时间:2022-09-03 12:22:06浏览次数:66  
标签:sort Slice 形参 int golang func my

func Slice(x interface{}, less func(i, j int) bool)

// 第一个形参是:待排序数据
x interface{}

// 第二个形参是:排序判断方法
// 形参i 代表后一个元素
// 形参j 代表前一元素
// 返回值:代表i,j是否交换。true:交换,false:不交换。
less func(i, j int) bool

demo:

package main

import (
	"fmt"
	"sort"
)

type MyStruct struct {
	ID int
	S int
}

func main() {
	my := []MyStruct{
		{1, 1}, // 第一个
		{4, 3}, // 第二个
		{3, 3},
		{2, 2},
	}
	// i 代表后一个元素,j代表前一个元素
	sort.Slice(my, func(i, j int) bool {
		// 举例子:
		// 后一个是{4,3}:my[i].S,它的值是3
		// 前一个是{1,1}:my[j].S,它的值是1
		// 3 <= 1 返回false,所以不交换。是按照升序排列的。
		return my[i].S <= my[j].S
		//return my[i].S> my[j].S // 后一个大于前一个就交换,所以是降序

	})

	fmt.Println("my:", my)
}
// 输出
// my: [{1 1} {2 2} {3 3} {4 3}]

 

标签:sort,Slice,形参,int,golang,func,my
From: https://www.cnblogs.com/fulaien/p/16652350.html

相关文章

  • Golang字符串库函数(常用)
    Golang基础-3字符串系统函数统计字符串长度按字节进行统计len(str)这是个内置函数,不用额外导包注意在golang中用的是utf-8编码,字母是一个字节,汉字是三个字节字符串的......
  • Golang基础-2
    Golang基础2指针如果声明变量varxint,则&x是获取x值所在的地址,类型是整型指针(*int),即我们可以声明一个变量来接收其返回值varp*int=&x那么p就是一个指针变量 ag......
  • Golang获取随机float64(正数)数据与随机int数据(可以是负数)
    packageutilsimport("fmt""github.com/shopspring/decimal""math""math/rand""testing""time")funcinit(){//初始化rand模......
  • Fast Bubble Sort (单调zai+倍增) (2022杭电多校10)
    VirtualJudge(vjudge.net)题目:题目大意:首先说明一个性质,A表示一个数组,B(A)表示把这段数组进行一遍冒泡排序的下沉操作,就是把大数沉底。然后题目给我们一个长度为n的......
  • go slice的拷贝问题
    首先是深拷贝与浅拷贝的特点浅拷贝实际是拷贝的地址,两个变量将会指向同一个空间,导致修改其中一方另一方也会跟着改变深拷贝则拷贝所有的数据内容在一个新的空间内,这样两......
  • golang面试题
    面试题1:2.代码效率分析,考察局部性原理3.多核CPU场景下,cache如何保持一致、不冲突?4.uint类型溢出5.介绍rune类型6.编程题:3个函数分别打印cat、dog、fish,要求每个函数......
  • 220902_leetcode 21. Merge Two Sorted Lists 合并两个有序链表(简单).md
    一、题目大意将两个升序链表合并为一个新的升序链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。示例1:输入:l1=[1,2,4],l2=[1,3,4]输出:[1,1,2,......
  • Golang 动态脚本调研
    一、技术背景1.1程序的动态链接技术在实际开发过程中,我们经常需要动态地更新程序的功能,或者在不变更程序主体文件的情况下添加或者更新程序模块。1.1.1动态链接库首......
  • 使用golang实现Redis中间件
    (一).RESP协议解释  RESP协议在Redis1.2被引入,直到Redis2.0才成为和Redis服务器通信的标准。这个协议需要在你的Redis客户端实现。RESP是一个支持多种数据类型的序列化协......
  • torch.sort 和 torch.argsort
    定义torch.sort(input,dim,descending)torch.argsort(input,dim,descending)用法torch.sort:对输入数据排序,返回两个值,即排序后的数据values和其在原矩阵中的坐标indice......