Skip to content

Commit 019926a

Browse files
authoredAug 10, 2023
Merge pull request #12 from golang-infrastructure/dev
docs: 完善中文文档
2 parents 76d66b8 + 18a5914 commit 019926a

File tree

1 file changed

+42
-0
lines changed

1 file changed

+42
-0
lines changed
 

‎README.md

+42
Original file line numberDiff line numberDiff line change
@@ -59,6 +59,21 @@ func Return[T any](boolExpression bool, trueReturnValue, falseReturnValue T) T {
5959
return falseReturnValue
6060
}
6161
}
62+
63+
// ReturnByFunc
64+
//
65+
// @Description: if实现的三元表达式
66+
// @param boolExpression: 布尔表达式,最终返回一个布尔值
67+
// @param trueReturnValue: 当boolExpression返回值为true的时候执行此函数并返回值
68+
// @param falseReturnValue: 当boolExpression返回值为false的时候执行此函数并返回值
69+
// @return bool: 三元表达式的结果,为trueReturnValue或者falseReturnValue中的一个
70+
func ReturnByFunc[T any](boolExpression bool, trueFuncForReturnValue, falseFuncForReturnValue func() T) T {
71+
if boolExpression {
72+
return trueFuncForReturnValue()
73+
} else {
74+
return falseFuncForReturnValue()
75+
}
76+
}
6277
```
6378

6479
# 三、 Example
@@ -91,3 +106,30 @@ func main() {
91106

92107
```
93108

109+
或者使用函数进行返回,仅有被命中分支的函数才会得到执行,不过这种方式并不简洁并不建议使用:
110+
111+
```go
112+
package main
113+
114+
import (
115+
"fmt"
116+
if_expression "github.com/golang-infrastructure/go-if-expression"
117+
)
118+
119+
func main() {
120+
121+
r := if_expression.ReturnByFunc(true, func() string {
122+
fmt.Println("True分支被执行了")
123+
return ""
124+
}, func() string {
125+
fmt.Println("False分支被执行了")
126+
return ""
127+
})
128+
fmt.Println(r)
129+
// Output:
130+
// True分支被执行了
131+
//
132+
133+
}
134+
```
135+

0 commit comments

Comments
 (0)
Please sign in to comment.