mirror of
https://github.com/samber/lo.git
synced 2025-09-26 20:11:13 +08:00
490 lines
9.8 KiB
Go
490 lines
9.8 KiB
Go
package lo
|
|
|
|
import (
|
|
"fmt"
|
|
)
|
|
|
|
func ExampleTernary() {
|
|
result := Ternary(true, "a", "b")
|
|
|
|
fmt.Printf("%v", result)
|
|
// Output: a
|
|
}
|
|
|
|
func ExampleTernaryF() {
|
|
result := TernaryF(true, func() string { return "a" }, func() string { return "b" })
|
|
|
|
fmt.Printf("%v", result)
|
|
// Output: a
|
|
}
|
|
|
|
func ExampleIf() {
|
|
result1 := If(true, 1).
|
|
ElseIf(false, 2).
|
|
Else(3)
|
|
|
|
result2 := If(false, 1).
|
|
ElseIf(true, 2).
|
|
Else(3)
|
|
|
|
result3 := If(false, 1).
|
|
ElseIf(false, 2).
|
|
Else(3)
|
|
|
|
result4 := IfF(true, func() int { return 1 }).
|
|
ElseIfF(false, func() int { return 2 }).
|
|
ElseF(func() int { return 3 })
|
|
|
|
result5 := IfF(false, func() int { return 1 }).
|
|
ElseIfF(true, func() int { return 2 }).
|
|
ElseF(func() int { return 3 })
|
|
|
|
result6 := IfF(false, func() int { return 1 }).
|
|
ElseIfF(false, func() int { return 2 }).
|
|
ElseF(func() int { return 3 })
|
|
|
|
fmt.Printf("%v\n", result1)
|
|
fmt.Printf("%v\n", result2)
|
|
fmt.Printf("%v\n", result3)
|
|
fmt.Printf("%v\n", result4)
|
|
fmt.Printf("%v\n", result5)
|
|
fmt.Printf("%v\n", result6)
|
|
// Output:
|
|
// 1
|
|
// 2
|
|
// 3
|
|
// 1
|
|
// 2
|
|
// 3
|
|
}
|
|
|
|
func ExampleIfF() {
|
|
result1 := If(true, 1).
|
|
ElseIf(false, 2).
|
|
Else(3)
|
|
|
|
result2 := If(false, 1).
|
|
ElseIf(true, 2).
|
|
Else(3)
|
|
|
|
result3 := If(false, 1).
|
|
ElseIf(false, 2).
|
|
Else(3)
|
|
|
|
result4 := IfF(true, func() int { return 1 }).
|
|
ElseIfF(false, func() int { return 2 }).
|
|
ElseF(func() int { return 3 })
|
|
|
|
result5 := IfF(false, func() int { return 1 }).
|
|
ElseIfF(true, func() int { return 2 }).
|
|
ElseF(func() int { return 3 })
|
|
|
|
result6 := IfF(false, func() int { return 1 }).
|
|
ElseIfF(false, func() int { return 2 }).
|
|
ElseF(func() int { return 3 })
|
|
|
|
fmt.Printf("%v\n", result1)
|
|
fmt.Printf("%v\n", result2)
|
|
fmt.Printf("%v\n", result3)
|
|
fmt.Printf("%v\n", result4)
|
|
fmt.Printf("%v\n", result5)
|
|
fmt.Printf("%v\n", result6)
|
|
// Output:
|
|
// 1
|
|
// 2
|
|
// 3
|
|
// 1
|
|
// 2
|
|
// 3
|
|
}
|
|
|
|
func ExampleifElse_ElseIf() {
|
|
result1 := If(true, 1).
|
|
ElseIf(false, 2).
|
|
Else(3)
|
|
|
|
result2 := If(false, 1).
|
|
ElseIf(true, 2).
|
|
Else(3)
|
|
|
|
result3 := If(false, 1).
|
|
ElseIf(false, 2).
|
|
Else(3)
|
|
|
|
result4 := IfF(true, func() int { return 1 }).
|
|
ElseIfF(false, func() int { return 2 }).
|
|
ElseF(func() int { return 3 })
|
|
|
|
result5 := IfF(false, func() int { return 1 }).
|
|
ElseIfF(true, func() int { return 2 }).
|
|
ElseF(func() int { return 3 })
|
|
|
|
result6 := IfF(false, func() int { return 1 }).
|
|
ElseIfF(false, func() int { return 2 }).
|
|
ElseF(func() int { return 3 })
|
|
|
|
fmt.Printf("%v\n", result1)
|
|
fmt.Printf("%v\n", result2)
|
|
fmt.Printf("%v\n", result3)
|
|
fmt.Printf("%v\n", result4)
|
|
fmt.Printf("%v\n", result5)
|
|
fmt.Printf("%v\n", result6)
|
|
// Output:
|
|
// 1
|
|
// 2
|
|
// 3
|
|
// 1
|
|
// 2
|
|
// 3
|
|
}
|
|
|
|
func ExampleifElse_ElseIfF() {
|
|
result1 := If(true, 1).
|
|
ElseIf(false, 2).
|
|
Else(3)
|
|
|
|
result2 := If(false, 1).
|
|
ElseIf(true, 2).
|
|
Else(3)
|
|
|
|
result3 := If(false, 1).
|
|
ElseIf(false, 2).
|
|
Else(3)
|
|
|
|
result4 := IfF(true, func() int { return 1 }).
|
|
ElseIfF(false, func() int { return 2 }).
|
|
ElseF(func() int { return 3 })
|
|
|
|
result5 := IfF(false, func() int { return 1 }).
|
|
ElseIfF(true, func() int { return 2 }).
|
|
ElseF(func() int { return 3 })
|
|
|
|
result6 := IfF(false, func() int { return 1 }).
|
|
ElseIfF(false, func() int { return 2 }).
|
|
ElseF(func() int { return 3 })
|
|
|
|
fmt.Printf("%v\n", result1)
|
|
fmt.Printf("%v\n", result2)
|
|
fmt.Printf("%v\n", result3)
|
|
fmt.Printf("%v\n", result4)
|
|
fmt.Printf("%v\n", result5)
|
|
fmt.Printf("%v\n", result6)
|
|
// Output:
|
|
// 1
|
|
// 2
|
|
// 3
|
|
// 1
|
|
// 2
|
|
// 3
|
|
}
|
|
|
|
func ExampleifElse_Else() {
|
|
result1 := If(true, 1).
|
|
ElseIf(false, 2).
|
|
Else(3)
|
|
|
|
result2 := If(false, 1).
|
|
ElseIf(true, 2).
|
|
Else(3)
|
|
|
|
result3 := If(false, 1).
|
|
ElseIf(false, 2).
|
|
Else(3)
|
|
|
|
result4 := IfF(true, func() int { return 1 }).
|
|
ElseIfF(false, func() int { return 2 }).
|
|
ElseF(func() int { return 3 })
|
|
|
|
result5 := IfF(false, func() int { return 1 }).
|
|
ElseIfF(true, func() int { return 2 }).
|
|
ElseF(func() int { return 3 })
|
|
|
|
result6 := IfF(false, func() int { return 1 }).
|
|
ElseIfF(false, func() int { return 2 }).
|
|
ElseF(func() int { return 3 })
|
|
|
|
fmt.Printf("%v\n", result1)
|
|
fmt.Printf("%v\n", result2)
|
|
fmt.Printf("%v\n", result3)
|
|
fmt.Printf("%v\n", result4)
|
|
fmt.Printf("%v\n", result5)
|
|
fmt.Printf("%v\n", result6)
|
|
// Output:
|
|
// 1
|
|
// 2
|
|
// 3
|
|
// 1
|
|
// 2
|
|
// 3
|
|
}
|
|
|
|
func ExampleifElse_ElseF() {
|
|
result1 := If(true, 1).
|
|
ElseIf(false, 2).
|
|
Else(3)
|
|
|
|
result2 := If(false, 1).
|
|
ElseIf(true, 2).
|
|
Else(3)
|
|
|
|
result3 := If(false, 1).
|
|
ElseIf(false, 2).
|
|
Else(3)
|
|
|
|
result4 := IfF(true, func() int { return 1 }).
|
|
ElseIfF(false, func() int { return 2 }).
|
|
ElseF(func() int { return 3 })
|
|
|
|
result5 := IfF(false, func() int { return 1 }).
|
|
ElseIfF(true, func() int { return 2 }).
|
|
ElseF(func() int { return 3 })
|
|
|
|
result6 := IfF(false, func() int { return 1 }).
|
|
ElseIfF(false, func() int { return 2 }).
|
|
ElseF(func() int { return 3 })
|
|
|
|
fmt.Printf("%v\n", result1)
|
|
fmt.Printf("%v\n", result2)
|
|
fmt.Printf("%v\n", result3)
|
|
fmt.Printf("%v\n", result4)
|
|
fmt.Printf("%v\n", result5)
|
|
fmt.Printf("%v\n", result6)
|
|
// Output:
|
|
// 1
|
|
// 2
|
|
// 3
|
|
// 1
|
|
// 2
|
|
// 3
|
|
}
|
|
|
|
func ExampleSwitch() {
|
|
result1 := Switch[int, string](1).
|
|
Case(1, "1").
|
|
Case(2, "2").
|
|
Default("3")
|
|
|
|
result2 := Switch[int, string](2).
|
|
Case(1, "1").
|
|
Case(2, "2").
|
|
Default("3")
|
|
|
|
result3 := Switch[int, string](42).
|
|
Case(1, "1").
|
|
Case(2, "2").
|
|
Default("3")
|
|
|
|
result4 := Switch[int, string](1).
|
|
CaseF(1, func() string { return "1" }).
|
|
CaseF(2, func() string { return "2" }).
|
|
DefaultF(func() string { return "3" })
|
|
|
|
result5 := Switch[int, string](2).
|
|
CaseF(1, func() string { return "1" }).
|
|
CaseF(2, func() string { return "2" }).
|
|
DefaultF(func() string { return "3" })
|
|
|
|
result6 := Switch[int, string](42).
|
|
CaseF(1, func() string { return "1" }).
|
|
CaseF(2, func() string { return "2" }).
|
|
DefaultF(func() string { return "3" })
|
|
|
|
fmt.Printf("%v\n", result1)
|
|
fmt.Printf("%v\n", result2)
|
|
fmt.Printf("%v\n", result3)
|
|
fmt.Printf("%v\n", result4)
|
|
fmt.Printf("%v\n", result5)
|
|
fmt.Printf("%v\n", result6)
|
|
// Output:
|
|
// 1
|
|
// 2
|
|
// 3
|
|
// 1
|
|
// 2
|
|
// 3
|
|
}
|
|
|
|
func ExampleswitchCase_Case() {
|
|
result1 := Switch[int, string](1).
|
|
Case(1, "1").
|
|
Case(2, "2").
|
|
Default("3")
|
|
|
|
result2 := Switch[int, string](2).
|
|
Case(1, "1").
|
|
Case(2, "2").
|
|
Default("3")
|
|
|
|
result3 := Switch[int, string](42).
|
|
Case(1, "1").
|
|
Case(2, "2").
|
|
Default("3")
|
|
|
|
result4 := Switch[int, string](1).
|
|
CaseF(1, func() string { return "1" }).
|
|
CaseF(2, func() string { return "2" }).
|
|
DefaultF(func() string { return "3" })
|
|
|
|
result5 := Switch[int, string](2).
|
|
CaseF(1, func() string { return "1" }).
|
|
CaseF(2, func() string { return "2" }).
|
|
DefaultF(func() string { return "3" })
|
|
|
|
result6 := Switch[int, string](42).
|
|
CaseF(1, func() string { return "1" }).
|
|
CaseF(2, func() string { return "2" }).
|
|
DefaultF(func() string { return "3" })
|
|
|
|
fmt.Printf("%v\n", result1)
|
|
fmt.Printf("%v\n", result2)
|
|
fmt.Printf("%v\n", result3)
|
|
fmt.Printf("%v\n", result4)
|
|
fmt.Printf("%v\n", result5)
|
|
fmt.Printf("%v\n", result6)
|
|
// Output:
|
|
// 1
|
|
// 2
|
|
// 3
|
|
// 1
|
|
// 2
|
|
// 3
|
|
}
|
|
|
|
func ExampleswitchCase_CaseF() {
|
|
result1 := Switch[int, string](1).
|
|
Case(1, "1").
|
|
Case(2, "2").
|
|
Default("3")
|
|
|
|
result2 := Switch[int, string](2).
|
|
Case(1, "1").
|
|
Case(2, "2").
|
|
Default("3")
|
|
|
|
result3 := Switch[int, string](42).
|
|
Case(1, "1").
|
|
Case(2, "2").
|
|
Default("3")
|
|
|
|
result4 := Switch[int, string](1).
|
|
CaseF(1, func() string { return "1" }).
|
|
CaseF(2, func() string { return "2" }).
|
|
DefaultF(func() string { return "3" })
|
|
|
|
result5 := Switch[int, string](2).
|
|
CaseF(1, func() string { return "1" }).
|
|
CaseF(2, func() string { return "2" }).
|
|
DefaultF(func() string { return "3" })
|
|
|
|
result6 := Switch[int, string](42).
|
|
CaseF(1, func() string { return "1" }).
|
|
CaseF(2, func() string { return "2" }).
|
|
DefaultF(func() string { return "3" })
|
|
|
|
fmt.Printf("%v\n", result1)
|
|
fmt.Printf("%v\n", result2)
|
|
fmt.Printf("%v\n", result3)
|
|
fmt.Printf("%v\n", result4)
|
|
fmt.Printf("%v\n", result5)
|
|
fmt.Printf("%v\n", result6)
|
|
// Output:
|
|
// 1
|
|
// 2
|
|
// 3
|
|
// 1
|
|
// 2
|
|
// 3
|
|
}
|
|
|
|
func ExampleswitchCase_Default() {
|
|
result1 := Switch[int, string](1).
|
|
Case(1, "1").
|
|
Case(2, "2").
|
|
Default("3")
|
|
|
|
result2 := Switch[int, string](2).
|
|
Case(1, "1").
|
|
Case(2, "2").
|
|
Default("3")
|
|
|
|
result3 := Switch[int, string](42).
|
|
Case(1, "1").
|
|
Case(2, "2").
|
|
Default("3")
|
|
|
|
result4 := Switch[int, string](1).
|
|
CaseF(1, func() string { return "1" }).
|
|
CaseF(2, func() string { return "2" }).
|
|
DefaultF(func() string { return "3" })
|
|
|
|
result5 := Switch[int, string](2).
|
|
CaseF(1, func() string { return "1" }).
|
|
CaseF(2, func() string { return "2" }).
|
|
DefaultF(func() string { return "3" })
|
|
|
|
result6 := Switch[int, string](42).
|
|
CaseF(1, func() string { return "1" }).
|
|
CaseF(2, func() string { return "2" }).
|
|
DefaultF(func() string { return "3" })
|
|
|
|
fmt.Printf("%v\n", result1)
|
|
fmt.Printf("%v\n", result2)
|
|
fmt.Printf("%v\n", result3)
|
|
fmt.Printf("%v\n", result4)
|
|
fmt.Printf("%v\n", result5)
|
|
fmt.Printf("%v\n", result6)
|
|
// Output:
|
|
// 1
|
|
// 2
|
|
// 3
|
|
// 1
|
|
// 2
|
|
// 3
|
|
}
|
|
|
|
func ExampleswitchCase_DefaultF() {
|
|
result1 := Switch[int, string](1).
|
|
Case(1, "1").
|
|
Case(2, "2").
|
|
Default("3")
|
|
|
|
result2 := Switch[int, string](2).
|
|
Case(1, "1").
|
|
Case(2, "2").
|
|
Default("3")
|
|
|
|
result3 := Switch[int, string](42).
|
|
Case(1, "1").
|
|
Case(2, "2").
|
|
Default("3")
|
|
|
|
result4 := Switch[int, string](1).
|
|
CaseF(1, func() string { return "1" }).
|
|
CaseF(2, func() string { return "2" }).
|
|
DefaultF(func() string { return "3" })
|
|
|
|
result5 := Switch[int, string](2).
|
|
CaseF(1, func() string { return "1" }).
|
|
CaseF(2, func() string { return "2" }).
|
|
DefaultF(func() string { return "3" })
|
|
|
|
result6 := Switch[int, string](42).
|
|
CaseF(1, func() string { return "1" }).
|
|
CaseF(2, func() string { return "2" }).
|
|
DefaultF(func() string { return "3" })
|
|
|
|
fmt.Printf("%v\n", result1)
|
|
fmt.Printf("%v\n", result2)
|
|
fmt.Printf("%v\n", result3)
|
|
fmt.Printf("%v\n", result4)
|
|
fmt.Printf("%v\n", result5)
|
|
fmt.Printf("%v\n", result6)
|
|
// Output:
|
|
// 1
|
|
// 2
|
|
// 3
|
|
// 1
|
|
// 2
|
|
// 3
|
|
}
|