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:
289
docs/slice.md
289
docs/slice.md
@@ -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
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|||||||
@@ -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
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|||||||
@@ -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 {
|
||||||
|
|||||||
Reference in New Issue
Block a user