mirror of
https://github.com/duke-git/lancet.git
synced 2026-02-12 16:52:29 +08:00
doc: add doc for sort function
This commit is contained in:
146
docs/slice.md
146
docs/slice.md
@@ -63,6 +63,10 @@ import (
|
|||||||
- [ReplaceAll](#ReplaceAll)
|
- [ReplaceAll](#ReplaceAll)
|
||||||
- [Repeat](#Repeat)
|
- [Repeat](#Repeat)
|
||||||
- [Shuffle](#Shuffle)
|
- [Shuffle](#Shuffle)
|
||||||
|
- [IsAscending](#IsAscending)
|
||||||
|
- [IsDescending](#IsDescending)
|
||||||
|
- [IsSorted](#IsSorted)
|
||||||
|
- [IsSortedByKey](#IsSortedByKey)
|
||||||
- [Sort](#Sort)
|
- [Sort](#Sort)
|
||||||
- [SortBy](#SortBy)
|
- [SortBy](#SortBy)
|
||||||
- [SortByField<sup>deprecated</sup>](#SortByField)
|
- [SortByField<sup>deprecated</sup>](#SortByField)
|
||||||
@@ -1470,6 +1474,148 @@ func main() {
|
|||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
|
### <span id="IsAscending">IsAscending</span>
|
||||||
|
|
||||||
|
<p>Checks if a slice is ascending order.</p>
|
||||||
|
|
||||||
|
<b>Signature:</b>
|
||||||
|
|
||||||
|
```go
|
||||||
|
func IsAscending[T constraints.Ordered](slice []T) bool
|
||||||
|
```
|
||||||
|
|
||||||
|
<b>Example:</b>
|
||||||
|
|
||||||
|
```go
|
||||||
|
import (
|
||||||
|
"fmt"
|
||||||
|
"github.com/duke-git/lancet/v2/slice"
|
||||||
|
)
|
||||||
|
|
||||||
|
func main() {
|
||||||
|
result1 := slice.IsAscending([]int{1, 2, 3, 4, 5})
|
||||||
|
result2 := slice.IsAscending([]int{5, 4, 3, 2, 1})
|
||||||
|
result3 := slice.IsAscending([]int{2, 1, 3, 4, 5})
|
||||||
|
|
||||||
|
fmt.Println(result1)
|
||||||
|
fmt.Println(result2)
|
||||||
|
fmt.Println(result3)
|
||||||
|
|
||||||
|
// Output:
|
||||||
|
// true
|
||||||
|
// false
|
||||||
|
// false
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
### <span id="IsDescending">IsDescending</span>
|
||||||
|
|
||||||
|
<p>Checks if a slice is descending order.</p>
|
||||||
|
|
||||||
|
<b>Signature:</b>
|
||||||
|
|
||||||
|
```go
|
||||||
|
func IsDescending[T constraints.Ordered](slice []T) bool
|
||||||
|
```
|
||||||
|
|
||||||
|
<b>Example:</b>
|
||||||
|
|
||||||
|
```go
|
||||||
|
import (
|
||||||
|
"fmt"
|
||||||
|
"github.com/duke-git/lancet/v2/slice"
|
||||||
|
)
|
||||||
|
|
||||||
|
func main() {
|
||||||
|
result1 := slice.IsDescending([]int{5, 4, 3, 2, 1})
|
||||||
|
result2 := slice.IsDescending([]int{1, 2, 3, 4, 5})
|
||||||
|
result3 := slice.IsDescending([]int{2, 1, 3, 4, 5})
|
||||||
|
|
||||||
|
fmt.Println(result1)
|
||||||
|
fmt.Println(result2)
|
||||||
|
fmt.Println(result3)
|
||||||
|
|
||||||
|
// Output:
|
||||||
|
// true
|
||||||
|
// false
|
||||||
|
// false
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
### <span id="IsSorted">IsSorted</span>
|
||||||
|
|
||||||
|
<p>Checks if a slice is sorted (ascending or descending).</p>
|
||||||
|
|
||||||
|
<b>Signature:</b>
|
||||||
|
|
||||||
|
```go
|
||||||
|
func IsSorted[T constraints.Ordered](slice []T) bool
|
||||||
|
```
|
||||||
|
|
||||||
|
<b>Example:</b>
|
||||||
|
|
||||||
|
```go
|
||||||
|
import (
|
||||||
|
"fmt"
|
||||||
|
"github.com/duke-git/lancet/v2/slice"
|
||||||
|
)
|
||||||
|
|
||||||
|
func main() {
|
||||||
|
result1 := slice.IsSorted([]int{5, 4, 3, 2, 1})
|
||||||
|
result2 := slice.IsSorted([]int{1, 2, 3, 4, 5})
|
||||||
|
result3 := slice.IsSorted([]int{2, 1, 3, 4, 5})
|
||||||
|
|
||||||
|
fmt.Println(result1)
|
||||||
|
fmt.Println(result2)
|
||||||
|
fmt.Println(result3)
|
||||||
|
|
||||||
|
// Output:
|
||||||
|
// true
|
||||||
|
// true
|
||||||
|
// false
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
### <span id="IsSortedByKey">IsSortedByKey</span>
|
||||||
|
|
||||||
|
<p>Checks if a slice is sorted by iteratee function.</p>
|
||||||
|
|
||||||
|
<b>Signature:</b>
|
||||||
|
|
||||||
|
```go
|
||||||
|
func IsSortedByKey[T any, K constraints.Ordered](slice []T, iteratee func(item T) K) bool
|
||||||
|
```
|
||||||
|
|
||||||
|
<b>Example:</b>
|
||||||
|
|
||||||
|
```go
|
||||||
|
import (
|
||||||
|
"fmt"
|
||||||
|
"github.com/duke-git/lancet/v2/slice"
|
||||||
|
)
|
||||||
|
|
||||||
|
func main() {
|
||||||
|
result1 := slice.IsSortedByKey([]string{"a", "ab", "abc"}, func(s string) int {
|
||||||
|
return len(s)
|
||||||
|
})
|
||||||
|
result2 := slice.IsSortedByKey([]string{"abc", "ab", "a"}, func(s string) int {
|
||||||
|
return len(s)
|
||||||
|
})
|
||||||
|
result3 := slice.IsSortedByKey([]string{"abc", "a", "ab"}, func(s string) int {
|
||||||
|
return len(s)
|
||||||
|
})
|
||||||
|
|
||||||
|
fmt.Println(result1)
|
||||||
|
fmt.Println(result2)
|
||||||
|
fmt.Println(result3)
|
||||||
|
|
||||||
|
// Output:
|
||||||
|
// true
|
||||||
|
// true
|
||||||
|
// false
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
### <span id="Sort">Sort</span>
|
### <span id="Sort">Sort</span>
|
||||||
|
|
||||||
<p>Sorts a slice of any ordered type(number or string), use quick sort algrithm. Default sort order is ascending (asc), if want descending order, set param `sortOrder` to `desc`. Ordered type: number(all ints uints floats) or string.
|
<p>Sorts a slice of any ordered type(number or string), use quick sort algrithm. Default sort order is ascending (asc), if want descending order, set param `sortOrder` to `desc`. Ordered type: number(all ints uints floats) or string.
|
||||||
|
|||||||
@@ -63,6 +63,10 @@ import (
|
|||||||
- [ReplaceAll](#ReplaceAll)
|
- [ReplaceAll](#ReplaceAll)
|
||||||
- [Repeat](#Repeat)
|
- [Repeat](#Repeat)
|
||||||
- [Shuffle](#Shuffle)
|
- [Shuffle](#Shuffle)
|
||||||
|
- [IsAscending](#IsAscending)
|
||||||
|
- [IsDescending](#IsDescending)
|
||||||
|
- [IsSorted](#IsSorted)
|
||||||
|
- [IsSortedByKey](#IsSortedByKey)
|
||||||
- [Sort](#Sort)
|
- [Sort](#Sort)
|
||||||
- [SortBy](#SortBy)
|
- [SortBy](#SortBy)
|
||||||
- [SortByField<sup>deprecated</sup>](#SortByField)
|
- [SortByField<sup>deprecated</sup>](#SortByField)
|
||||||
@@ -1472,6 +1476,148 @@ func main() {
|
|||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
|
### <span id="IsAscending">IsAscending</span>
|
||||||
|
|
||||||
|
<p>检查切片元素是否按升序排列。</p>
|
||||||
|
|
||||||
|
<b>函数签名:</b>
|
||||||
|
|
||||||
|
```go
|
||||||
|
func IsAscending[T constraints.Ordered](slice []T) bool
|
||||||
|
```
|
||||||
|
|
||||||
|
<b>示例:</b>
|
||||||
|
|
||||||
|
```go
|
||||||
|
import (
|
||||||
|
"fmt"
|
||||||
|
"github.com/duke-git/lancet/v2/slice"
|
||||||
|
)
|
||||||
|
|
||||||
|
func main() {
|
||||||
|
result1 := slice.IsAscending([]int{1, 2, 3, 4, 5})
|
||||||
|
result2 := slice.IsAscending([]int{5, 4, 3, 2, 1})
|
||||||
|
result3 := slice.IsAscending([]int{2, 1, 3, 4, 5})
|
||||||
|
|
||||||
|
fmt.Println(result1)
|
||||||
|
fmt.Println(result2)
|
||||||
|
fmt.Println(result3)
|
||||||
|
|
||||||
|
// Output:
|
||||||
|
// true
|
||||||
|
// false
|
||||||
|
// false
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
### <span id="IsDescending">IsDescending</span>
|
||||||
|
|
||||||
|
<p>检查切片元素是否按降序排列。</p>
|
||||||
|
|
||||||
|
<b>函数签名:</b>
|
||||||
|
|
||||||
|
```go
|
||||||
|
func IsDescending[T constraints.Ordered](slice []T) bool
|
||||||
|
```
|
||||||
|
|
||||||
|
<b>示例:</b>
|
||||||
|
|
||||||
|
```go
|
||||||
|
import (
|
||||||
|
"fmt"
|
||||||
|
"github.com/duke-git/lancet/v2/slice"
|
||||||
|
)
|
||||||
|
|
||||||
|
func main() {
|
||||||
|
result1 := slice.IsDescending([]int{5, 4, 3, 2, 1})
|
||||||
|
result2 := slice.IsDescending([]int{1, 2, 3, 4, 5})
|
||||||
|
result3 := slice.IsDescending([]int{2, 1, 3, 4, 5})
|
||||||
|
|
||||||
|
fmt.Println(result1)
|
||||||
|
fmt.Println(result2)
|
||||||
|
fmt.Println(result3)
|
||||||
|
|
||||||
|
// Output:
|
||||||
|
// true
|
||||||
|
// false
|
||||||
|
// false
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
### <span id="IsSorted">IsSorted</span>
|
||||||
|
|
||||||
|
<p>检查切片元素是否是有序的(升序或降序)。</p>
|
||||||
|
|
||||||
|
<b>函数签名:</b>
|
||||||
|
|
||||||
|
```go
|
||||||
|
func IsSorted[T constraints.Ordered](slice []T) bool
|
||||||
|
```
|
||||||
|
|
||||||
|
<b>示例:</b>
|
||||||
|
|
||||||
|
```go
|
||||||
|
import (
|
||||||
|
"fmt"
|
||||||
|
"github.com/duke-git/lancet/v2/slice"
|
||||||
|
)
|
||||||
|
|
||||||
|
func main() {
|
||||||
|
result1 := slice.IsSorted([]int{5, 4, 3, 2, 1})
|
||||||
|
result2 := slice.IsSorted([]int{1, 2, 3, 4, 5})
|
||||||
|
result3 := slice.IsSorted([]int{2, 1, 3, 4, 5})
|
||||||
|
|
||||||
|
fmt.Println(result1)
|
||||||
|
fmt.Println(result2)
|
||||||
|
fmt.Println(result3)
|
||||||
|
|
||||||
|
// Output:
|
||||||
|
// true
|
||||||
|
// true
|
||||||
|
// false
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
### <span id="IsSortedByKey">IsSortedByKey</span>
|
||||||
|
|
||||||
|
<p>通过iteratee函数,检查切片元素是否是有序的。</p>
|
||||||
|
|
||||||
|
<b>函数签名:</b>
|
||||||
|
|
||||||
|
```go
|
||||||
|
func IsSortedByKey[T any, K constraints.Ordered](slice []T, iteratee func(item T) K) bool
|
||||||
|
```
|
||||||
|
|
||||||
|
<b>示例:</b>
|
||||||
|
|
||||||
|
```go
|
||||||
|
import (
|
||||||
|
"fmt"
|
||||||
|
"github.com/duke-git/lancet/v2/slice"
|
||||||
|
)
|
||||||
|
|
||||||
|
func main() {
|
||||||
|
result1 := slice.IsSortedByKey([]string{"a", "ab", "abc"}, func(s string) int {
|
||||||
|
return len(s)
|
||||||
|
})
|
||||||
|
result2 := slice.IsSortedByKey([]string{"abc", "ab", "a"}, func(s string) int {
|
||||||
|
return len(s)
|
||||||
|
})
|
||||||
|
result3 := slice.IsSortedByKey([]string{"abc", "a", "ab"}, func(s string) int {
|
||||||
|
return len(s)
|
||||||
|
})
|
||||||
|
|
||||||
|
fmt.Println(result1)
|
||||||
|
fmt.Println(result2)
|
||||||
|
fmt.Println(result3)
|
||||||
|
|
||||||
|
// Output:
|
||||||
|
// true
|
||||||
|
// true
|
||||||
|
// false
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
### <span id="Sort">Sort</span>
|
### <span id="Sort">Sort</span>
|
||||||
|
|
||||||
<p>对任何有序类型(数字或字符串)的切片进行排序,使用快速排序算法。 默认排序顺序为升序 (asc),如果需要降序,请将参数 `sortOrder` 设置为 `desc`。 Ordered类型:数字(所有整数浮点数)或字符串。</p>
|
<p>对任何有序类型(数字或字符串)的切片进行排序,使用快速排序算法。 默认排序顺序为升序 (asc),如果需要降序,请将参数 `sortOrder` 设置为 `desc`。 Ordered类型:数字(所有整数浮点数)或字符串。</p>
|
||||||
|
|||||||
Reference in New Issue
Block a user