用Go中的函数或方法排序?

y0s*_*1an 5 sorting go

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

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

它还提供这些类型与转换内置片类型来命名类型Len(),Less(),Search(),Sort(),和Swap()方法:

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

这意味着我可以像这样排序一些int ...

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

或者像这样......

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

是否最好使用函数或方法排序?是否有时候一种形式优先于另一种形式?

Eva*_*van 7

sort.Ints(x)字面上的定义sort.Sort(sort.IntSlice(x))确实无关紧要.前者较短,所以我会用它.