1
0
mirror of https://github.com/duke-git/lancet.git synced 2026-02-16 18:52:27 +08:00

doc: fix doc error

This commit is contained in:
dudaodong
2023-03-16 10:36:06 +08:00
parent 5e66bc6227
commit d0ffc61842
3 changed files with 290 additions and 294 deletions

View File

@@ -173,28 +173,28 @@ import (
func main() { func main() {
type foo struct { type foo struct {
A string A string
B int B int
} }
array1 := []foo{{A: "1", B: 1}, {A: "2", B: 2}} array1 := []foo{{A: "1", B: 1}, {A: "2", B: 2}}
result1 := slice.ContainBy(array1, func(f foo) bool { return f.A == "1" && f.B == 1 }) result1 := slice.ContainBy(array1, func(f foo) bool { return f.A == "1" && f.B == 1 })
result2 := slice.ContainBy(array1, func(f foo) bool { return f.A == "2" && f.B == 1 }) result2 := slice.ContainBy(array1, func(f foo) bool { return f.A == "2" && f.B == 1 })
array2 := []string{"a", "b", "c"} array2 := []string{"a", "b", "c"}
result3 := slice.ContainBy(array2, func(t string) bool { return t == "a" }) result3 := slice.ContainBy(array2, func(t string) bool { return t == "a" })
result4 := slice.ContainBy(array2, func(t string) bool { return t == "d" }) result4 := slice.ContainBy(array2, func(t string) bool { return t == "d" })
fmt.Println(result1) fmt.Println(result1)
fmt.Println(result2) fmt.Println(result2)
fmt.Println(result3) fmt.Println(result3)
fmt.Println(result4) fmt.Println(result4)
// Output: // Output:
// true // true
// false // false
// true // true
// false // false
} }
``` ```
@@ -561,20 +561,20 @@ import (
func main() { func main() {
result1 := slice.Drop([]string{"a", "b", "c"}, 0) result1 := slice.Drop([]string{"a", "b", "c"}, 0)
result2 := slice.Drop([]string{"a", "b", "c"}, 1) result2 := slice.Drop([]string{"a", "b", "c"}, 1)
result3 := slice.Drop([]string{"a", "b", "c"}, -1) result3 := slice.Drop([]string{"a", "b", "c"}, -1)
result4 := slice.Drop([]string{"a", "b", "c"}, 4) result4 := slice.Drop([]string{"a", "b", "c"}, 4)
fmt.Println(result1) fmt.Println(result1)
fmt.Println(result2) fmt.Println(result2)
fmt.Println(result3) fmt.Println(result3)
fmt.Println(result4) fmt.Println(result4)
// Output: // Output:
// [a b c] // [a b c]
// [b c] // [b c]
// [a b c] // [a b c]
// [] // []
} }
``` ```
@@ -598,20 +598,20 @@ import (
func main() { func main() {
result1 := slice.DropRight([]string{"a", "b", "c"}, 0) result1 := slice.DropRight([]string{"a", "b", "c"}, 0)
result2 := slice.DropRight([]string{"a", "b", "c"}, 1) result2 := slice.DropRight([]string{"a", "b", "c"}, 1)
result3 := slice.DropRight([]string{"a", "b", "c"}, -1) result3 := slice.DropRight([]string{"a", "b", "c"}, -1)
result4 := slice.DropRight([]string{"a", "b", "c"}, 4) result4 := slice.DropRight([]string{"a", "b", "c"}, 4)
fmt.Println(result1) fmt.Println(result1)
fmt.Println(result2) fmt.Println(result2)
fmt.Println(result3) fmt.Println(result3)
fmt.Println(result4) fmt.Println(result4)
// Output: // Output:
// [a b c] // [a b c]
// [a b] // [a b]
// [a b c] // [a b c]
// [] // []
} }
``` ```
@@ -635,23 +635,23 @@ import (
func main() { func main() {
result1 := slice.DropWhile(numbers, func(n int) bool { result1 := slice.DropWhile(numbers, func(n int) bool {
return n != 2 return n != 2
}) })
result2 := slice.DropWhile(numbers, func(n int) bool { result2 := slice.DropWhile(numbers, func(n int) bool {
return true return true
}) })
result3 := slice.DropWhile(numbers, func(n int) bool { result3 := slice.DropWhile(numbers, func(n int) bool {
return n == 0 return n == 0
}) })
fmt.Println(result1) fmt.Println(result1)
fmt.Println(result2) fmt.Println(result2)
fmt.Println(result3) fmt.Println(result3)
// Output: // Output:
// [2 3 4 5] // [2 3 4 5]
// [] // []
// [1 2 3 4 5] // [1 2 3 4 5]
} }
``` ```
@@ -676,24 +676,24 @@ import (
func main() { func main() {
numbers := []int{1, 2, 3, 4, 5} numbers := []int{1, 2, 3, 4, 5}
result1 := slice.DropRightWhile(numbers, func(n int) bool { result1 := slice.DropRightWhile(numbers, func(n int) bool {
return n != 2 return n != 2
}) })
result2 := slice.DropRightWhile(numbers, func(n int) bool { result2 := slice.DropRightWhile(numbers, func(n int) bool {
return true return true
}) })
result3 := slice.DropRightWhile(numbers, func(n int) bool { result3 := slice.DropRightWhile(numbers, func(n int) bool {
return n == 0 return n == 0
}) })
fmt.Println(result1) fmt.Println(result1)
fmt.Println(result2) fmt.Println(result2)
fmt.Println(result3) fmt.Println(result3)
// Output: // Output:
// [1 2] // [1 2]
// [] // []
// [1 2 3 4 5] // [1 2 3 4 5]
} }
``` ```
@@ -1002,10 +1002,9 @@ func main() {
} }
``` ```
### <span id="ForEachWithBreak">ForEachWithBreak</span> ### <span id="ForEachWithBreak">ForEachWithBreak</span>
<p>Iterates over elements of slice and invokes function for each element, when iteratee return true, will break the for each loop.</p> <p>Iterates over elements of slice and invokes function for each element, when iteratee return false, will break the for each loop.</p>
<b>Signature:</b> <b>Signature:</b>
@@ -1024,20 +1023,20 @@ import (
func main() { func main() {
numbers := []int{1, 2, 3, 4, 5} numbers := []int{1, 2, 3, 4, 5}
var sum int var sum int
slice.ForEachWithBreak(numbers, func(_, n int) bool { slice.ForEachWithBreak(numbers, func(_, n int) bool {
if n > 3 { if n > 3 {
return false return false
} }
sum += n sum += n
return true return true
}) })
fmt.Println(sum) fmt.Println(sum)
// Output: // Output:
// 6 // 6
} }
``` ```
@@ -1361,19 +1360,19 @@ import (
func main() { func main() {
nums := []int{1, 2, 3, 4, 5} nums := []int{1, 2, 3, 4, 5}
getEvenNumStr := func(i, num int) (string, bool) { getEvenNumStr := func(i, num int) (string, bool) {
if num%2 == 0 { if num%2 == 0 {
return strconv.FormatInt(int64(num), 10), true return strconv.FormatInt(int64(num), 10), true
} }
return "", false return "", false
} }
result := slice.FilterMap(nums, getEvenNumStr) result := slice.FilterMap(nums, getEvenNumStr)
fmt.Printf("%#v", result) fmt.Printf("%#v", result)
// Output: // Output:
// []string{"2", "4"} // []string{"2", "4"}
} }
``` ```
@@ -1398,15 +1397,15 @@ import (
func main() { func main() {
nums := []int{1, 2, 3, 4} nums := []int{1, 2, 3, 4}
result := slice.FlatMap(nums, func(i int, num int) []string { result := slice.FlatMap(nums, func(i int, num int) []string {
s := "hi-" + strconv.FormatInt(int64(num), 10) s := "hi-" + strconv.FormatInt(int64(num), 10)
return []string{s} return []string{s}
}) })
fmt.Printf("%#v", result) fmt.Printf("%#v", result)
// Output: // Output:
// []string{"hi-1", "hi-2", "hi-3", "hi-4"} // []string{"hi-1", "hi-2", "hi-3", "hi-4"}
} }
``` ```
@@ -1652,17 +1651,17 @@ import (
func main() { func main() {
result1 := slice.IsAscending([]int{1, 2, 3, 4, 5}) result1 := slice.IsAscending([]int{1, 2, 3, 4, 5})
result2 := slice.IsAscending([]int{5, 4, 3, 2, 1}) result2 := slice.IsAscending([]int{5, 4, 3, 2, 1})
result3 := slice.IsAscending([]int{2, 1, 3, 4, 5}) result3 := slice.IsAscending([]int{2, 1, 3, 4, 5})
fmt.Println(result1) fmt.Println(result1)
fmt.Println(result2) fmt.Println(result2)
fmt.Println(result3) fmt.Println(result3)
// Output: // Output:
// true // true
// false // false
// false // false
} }
``` ```
@@ -1686,17 +1685,17 @@ import (
func main() { func main() {
result1 := slice.IsDescending([]int{5, 4, 3, 2, 1}) result1 := slice.IsDescending([]int{5, 4, 3, 2, 1})
result2 := slice.IsDescending([]int{1, 2, 3, 4, 5}) result2 := slice.IsDescending([]int{1, 2, 3, 4, 5})
result3 := slice.IsDescending([]int{2, 1, 3, 4, 5}) result3 := slice.IsDescending([]int{2, 1, 3, 4, 5})
fmt.Println(result1) fmt.Println(result1)
fmt.Println(result2) fmt.Println(result2)
fmt.Println(result3) fmt.Println(result3)
// Output: // Output:
// true // true
// false // false
// false // false
} }
``` ```
@@ -1720,17 +1719,17 @@ import (
func main() { func main() {
result1 := slice.IsSorted([]int{5, 4, 3, 2, 1}) result1 := slice.IsSorted([]int{5, 4, 3, 2, 1})
result2 := slice.IsSorted([]int{1, 2, 3, 4, 5}) result2 := slice.IsSorted([]int{1, 2, 3, 4, 5})
result3 := slice.IsSorted([]int{2, 1, 3, 4, 5}) result3 := slice.IsSorted([]int{2, 1, 3, 4, 5})
fmt.Println(result1) fmt.Println(result1)
fmt.Println(result2) fmt.Println(result2)
fmt.Println(result3) fmt.Println(result3)
// Output: // Output:
// true // true
// true // true
// false // false
} }
``` ```
@@ -1754,23 +1753,23 @@ import (
func main() { func main() {
result1 := slice.IsSortedByKey([]string{"a", "ab", "abc"}, func(s string) int { result1 := slice.IsSortedByKey([]string{"a", "ab", "abc"}, func(s string) int {
return len(s) return len(s)
}) })
result2 := slice.IsSortedByKey([]string{"abc", "ab", "a"}, func(s string) int { result2 := slice.IsSortedByKey([]string{"abc", "ab", "a"}, func(s string) int {
return len(s) return len(s)
}) })
result3 := slice.IsSortedByKey([]string{"abc", "a", "ab"}, func(s string) int { result3 := slice.IsSortedByKey([]string{"abc", "a", "ab"}, func(s string) int {
return len(s) return len(s)
}) })
fmt.Println(result1) fmt.Println(result1)
fmt.Println(result2) fmt.Println(result2)
fmt.Println(result3) fmt.Println(result3)
// Output: // Output:
// true // true
// true // true
// false // false
} }
``` ```

View File

@@ -173,28 +173,28 @@ import (
func main() { func main() {
type foo struct { type foo struct {
A string A string
B int B int
} }
array1 := []foo{{A: "1", B: 1}, {A: "2", B: 2}} array1 := []foo{{A: "1", B: 1}, {A: "2", B: 2}}
result1 := slice.ContainBy(array1, func(f foo) bool { return f.A == "1" && f.B == 1 }) result1 := slice.ContainBy(array1, func(f foo) bool { return f.A == "1" && f.B == 1 })
result2 := slice.ContainBy(array1, func(f foo) bool { return f.A == "2" && f.B == 1 }) result2 := slice.ContainBy(array1, func(f foo) bool { return f.A == "2" && f.B == 1 })
array2 := []string{"a", "b", "c"} array2 := []string{"a", "b", "c"}
result3 := slice.ContainBy(array2, func(t string) bool { return t == "a" }) result3 := slice.ContainBy(array2, func(t string) bool { return t == "a" })
result4 := slice.ContainBy(array2, func(t string) bool { return t == "d" }) result4 := slice.ContainBy(array2, func(t string) bool { return t == "d" })
fmt.Println(result1) fmt.Println(result1)
fmt.Println(result2) fmt.Println(result2)
fmt.Println(result3) fmt.Println(result3)
fmt.Println(result4) fmt.Println(result4)
// Output: // Output:
// true // true
// false // false
// true // true
// false // false
} }
``` ```
@@ -542,7 +542,6 @@ func main() {
} }
``` ```
### <span id="Drop">Drop</span> ### <span id="Drop">Drop</span>
<p>从切片的头部删除n个元素。</p> <p>从切片的头部删除n个元素。</p>
@@ -563,20 +562,20 @@ import (
func main() { func main() {
result1 := slice.Drop([]string{"a", "b", "c"}, 0) result1 := slice.Drop([]string{"a", "b", "c"}, 0)
result2 := slice.Drop([]string{"a", "b", "c"}, 1) result2 := slice.Drop([]string{"a", "b", "c"}, 1)
result3 := slice.Drop([]string{"a", "b", "c"}, -1) result3 := slice.Drop([]string{"a", "b", "c"}, -1)
result4 := slice.Drop([]string{"a", "b", "c"}, 4) result4 := slice.Drop([]string{"a", "b", "c"}, 4)
fmt.Println(result1) fmt.Println(result1)
fmt.Println(result2) fmt.Println(result2)
fmt.Println(result3) fmt.Println(result3)
fmt.Println(result4) fmt.Println(result4)
// Output: // Output:
// [a b c] // [a b c]
// [b c] // [b c]
// [a b c] // [a b c]
// [] // []
} }
``` ```
@@ -600,20 +599,20 @@ import (
func main() { func main() {
result1 := slice.DropRight([]string{"a", "b", "c"}, 0) result1 := slice.DropRight([]string{"a", "b", "c"}, 0)
result2 := slice.DropRight([]string{"a", "b", "c"}, 1) result2 := slice.DropRight([]string{"a", "b", "c"}, 1)
result3 := slice.DropRight([]string{"a", "b", "c"}, -1) result3 := slice.DropRight([]string{"a", "b", "c"}, -1)
result4 := slice.DropRight([]string{"a", "b", "c"}, 4) result4 := slice.DropRight([]string{"a", "b", "c"}, 4)
fmt.Println(result1) fmt.Println(result1)
fmt.Println(result2) fmt.Println(result2)
fmt.Println(result3) fmt.Println(result3)
fmt.Println(result4) fmt.Println(result4)
// Output: // Output:
// [a b c] // [a b c]
// [a b] // [a b]
// [a b c] // [a b c]
// [] // []
} }
``` ```
@@ -637,23 +636,23 @@ import (
func main() { func main() {
result1 := slice.DropWhile(numbers, func(n int) bool { result1 := slice.DropWhile(numbers, func(n int) bool {
return n != 2 return n != 2
}) })
result2 := slice.DropWhile(numbers, func(n int) bool { result2 := slice.DropWhile(numbers, func(n int) bool {
return true return true
}) })
result3 := slice.DropWhile(numbers, func(n int) bool { result3 := slice.DropWhile(numbers, func(n int) bool {
return n == 0 return n == 0
}) })
fmt.Println(result1) fmt.Println(result1)
fmt.Println(result2) fmt.Println(result2)
fmt.Println(result3) fmt.Println(result3)
// Output: // Output:
// [2 3 4 5] // [2 3 4 5]
// [] // []
// [1 2 3 4 5] // [1 2 3 4 5]
} }
``` ```
@@ -678,24 +677,24 @@ import (
func main() { func main() {
numbers := []int{1, 2, 3, 4, 5} numbers := []int{1, 2, 3, 4, 5}
result1 := slice.DropRightWhile(numbers, func(n int) bool { result1 := slice.DropRightWhile(numbers, func(n int) bool {
return n != 2 return n != 2
}) })
result2 := slice.DropRightWhile(numbers, func(n int) bool { result2 := slice.DropRightWhile(numbers, func(n int) bool {
return true return true
}) })
result3 := slice.DropRightWhile(numbers, func(n int) bool { result3 := slice.DropRightWhile(numbers, func(n int) bool {
return n == 0 return n == 0
}) })
fmt.Println(result1) fmt.Println(result1)
fmt.Println(result2) fmt.Println(result2)
fmt.Println(result3) fmt.Println(result3)
// Output: // Output:
// [1 2] // [1 2]
// [] // []
// [1 2 3 4 5] // [1 2 3 4 5]
} }
``` ```
@@ -1004,7 +1003,6 @@ func main() {
} }
``` ```
### <span id="ForEachWithBreak">ForEachWithBreak</span> ### <span id="ForEachWithBreak">ForEachWithBreak</span>
<p>遍历切片的元素并为每个元素调用iteratee函数当iteratee函数返回false时终止遍历。</p> <p>遍历切片的元素并为每个元素调用iteratee函数当iteratee函数返回false时终止遍历。</p>
@@ -1026,24 +1024,23 @@ import (
func main() { func main() {
numbers := []int{1, 2, 3, 4, 5} numbers := []int{1, 2, 3, 4, 5}
var sum int var sum int
slice.ForEachWithBreak(numbers, func(_, n int) bool { slice.ForEachWithBreak(numbers, func(_, n int) bool {
if n > 3 { if n > 3 {
return false return false
} }
sum += n sum += n
return true return true
}) })
fmt.Println(sum) fmt.Println(sum)
// Output: // Output:
// 6 // 6
} }
``` ```
### <span id="GroupBy">GroupBy</span> ### <span id="GroupBy">GroupBy</span>
<p>迭代切片的元素,每个元素将按条件分组,返回两个切片</p> <p>迭代切片的元素,每个元素将按条件分组,返回两个切片</p>
@@ -1364,19 +1361,19 @@ import (
func main() { func main() {
nums := []int{1, 2, 3, 4, 5} nums := []int{1, 2, 3, 4, 5}
getEvenNumStr := func(i, num int) (string, bool) { getEvenNumStr := func(i, num int) (string, bool) {
if num%2 == 0 { if num%2 == 0 {
return strconv.FormatInt(int64(num), 10), true return strconv.FormatInt(int64(num), 10), true
} }
return "", false return "", false
} }
result := slice.FilterMap(nums, getEvenNumStr) result := slice.FilterMap(nums, getEvenNumStr)
fmt.Printf("%#v", result) fmt.Printf("%#v", result)
// Output: // Output:
// []string{"2", "4"} // []string{"2", "4"}
} }
``` ```
@@ -1401,15 +1398,15 @@ import (
func main() { func main() {
nums := []int{1, 2, 3, 4} nums := []int{1, 2, 3, 4}
result := slice.FlatMap(nums, func(i int, num int) []string { result := slice.FlatMap(nums, func(i int, num int) []string {
s := "hi-" + strconv.FormatInt(int64(num), 10) s := "hi-" + strconv.FormatInt(int64(num), 10)
return []string{s} return []string{s}
}) })
fmt.Printf("%#v", result) fmt.Printf("%#v", result)
// Output: // Output:
// []string{"hi-1", "hi-2", "hi-3", "hi-4"} // []string{"hi-1", "hi-2", "hi-3", "hi-4"}
} }
``` ```
@@ -1655,17 +1652,17 @@ import (
func main() { func main() {
result1 := slice.IsAscending([]int{1, 2, 3, 4, 5}) result1 := slice.IsAscending([]int{1, 2, 3, 4, 5})
result2 := slice.IsAscending([]int{5, 4, 3, 2, 1}) result2 := slice.IsAscending([]int{5, 4, 3, 2, 1})
result3 := slice.IsAscending([]int{2, 1, 3, 4, 5}) result3 := slice.IsAscending([]int{2, 1, 3, 4, 5})
fmt.Println(result1) fmt.Println(result1)
fmt.Println(result2) fmt.Println(result2)
fmt.Println(result3) fmt.Println(result3)
// Output: // Output:
// true // true
// false // false
// false // false
} }
``` ```
@@ -1689,17 +1686,17 @@ import (
func main() { func main() {
result1 := slice.IsDescending([]int{5, 4, 3, 2, 1}) result1 := slice.IsDescending([]int{5, 4, 3, 2, 1})
result2 := slice.IsDescending([]int{1, 2, 3, 4, 5}) result2 := slice.IsDescending([]int{1, 2, 3, 4, 5})
result3 := slice.IsDescending([]int{2, 1, 3, 4, 5}) result3 := slice.IsDescending([]int{2, 1, 3, 4, 5})
fmt.Println(result1) fmt.Println(result1)
fmt.Println(result2) fmt.Println(result2)
fmt.Println(result3) fmt.Println(result3)
// Output: // Output:
// true // true
// false // false
// false // false
} }
``` ```
@@ -1723,17 +1720,17 @@ import (
func main() { func main() {
result1 := slice.IsSorted([]int{5, 4, 3, 2, 1}) result1 := slice.IsSorted([]int{5, 4, 3, 2, 1})
result2 := slice.IsSorted([]int{1, 2, 3, 4, 5}) result2 := slice.IsSorted([]int{1, 2, 3, 4, 5})
result3 := slice.IsSorted([]int{2, 1, 3, 4, 5}) result3 := slice.IsSorted([]int{2, 1, 3, 4, 5})
fmt.Println(result1) fmt.Println(result1)
fmt.Println(result2) fmt.Println(result2)
fmt.Println(result3) fmt.Println(result3)
// Output: // Output:
// true // true
// true // true
// false // false
} }
``` ```
@@ -1757,23 +1754,23 @@ import (
func main() { func main() {
result1 := slice.IsSortedByKey([]string{"a", "ab", "abc"}, func(s string) int { result1 := slice.IsSortedByKey([]string{"a", "ab", "abc"}, func(s string) int {
return len(s) return len(s)
}) })
result2 := slice.IsSortedByKey([]string{"abc", "ab", "a"}, func(s string) int { result2 := slice.IsSortedByKey([]string{"abc", "ab", "a"}, func(s string) int {
return len(s) return len(s)
}) })
result3 := slice.IsSortedByKey([]string{"abc", "a", "ab"}, func(s string) int { result3 := slice.IsSortedByKey([]string{"abc", "a", "ab"}, func(s string) int {
return len(s) return len(s)
}) })
fmt.Println(result1) fmt.Println(result1)
fmt.Println(result2) fmt.Println(result2)
fmt.Println(result3) fmt.Println(result3)
// Output: // Output:
// true // true
// true // true
// false // false
} }
``` ```

View File

@@ -422,7 +422,7 @@ func ForEach[T any](slice []T, iteratee func(index int, item T)) {
} }
// ForEachWithBreak iterates over elements of slice and invokes function for each element, // ForEachWithBreak iterates over elements of slice and invokes function for each element,
// when iteratee return true, will break the for each loop. // when iteratee return false, will break the for each loop.
func ForEachWithBreak[T any](slice []T, iteratee func(index int, item T) bool) { func ForEachWithBreak[T any](slice []T, iteratee func(index int, item T) bool) {
loop: loop:
for i, v := range slice { for i, v := range slice {