sorting - 在 Go 中使用函数或方法排序?

标签 sorting go

sort 包提供了这些用于对内置 slice 类型进行排序的函数:

  • sort.Ints(a []int)
  • sort.Float64s(a []float64)
  • sort.Strings(a []string)

它还提供了这些类型,用于将内置 slice 类型转换为具有 Len()Less()Search() 的命名类型、Sort()Swap() 方法:

  • sort.IntSlice
  • sort.Float64Slice
  • sort.StringSlice

这意味着我可以像这样对一片整数进行排序...

// Function
slice := []int{5, 4, 3, 2, 1}
sort.Ints(slice) // sort in place

或者像这样...

// Method
slice := sort.IntSlice{5, 4, 3, 2, 1}
slice.Sort() // also sort in place

用函数排序还是用方法排序更好?是否有时应该优先使用一种形式而不是另一种形式?

最佳答案

sort.Ints(x) 的定义就是字面上的 sort.Sort(sort.IntSlice(x)) 所以它真的没关系。前者较短,所以我会使用它。

关于sorting - 在 Go 中使用函数或方法排序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23438124/

相关文章:

jquery - 使用 HTML5sortable 序列化 AJAX 数据

pointers - 如何从接口(interface){}获取结构成员的指针

go - Cors 不适用于 gin 和 golang 组路由

javascript - Node.js,映射对象数组,并将特定值放入新数组中

MySql 在具有重复节点的闭包表中对分层数据进行排序

sorting - 基于二进制比较对数组进行排序,同时最小化不及物试验

C# - 由其他字符串作为帮助程序的字符串排序

postgresql - 套接字 : operation not permitted when connecting to cloudsql

go - 如何让 goroutines 使用匿名函数在循环中返回值

arrays - 在给定字符串数组的情况下动态初始化结构