Refactor tests to prevent from unnecessary preparations (#32398)

This commit is contained in:
wxiaoguang 2024-11-01 23:18:29 +08:00 committed by GitHub
parent 66971e591e
commit ec2d1593c2
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
6 changed files with 89 additions and 55 deletions

View file

@ -230,6 +230,25 @@ func IfZero[T comparable](v, def T) T {
return v
}
// OptionalArg helps the "optional argument" in Golang:
//
// func foo(optArg ...int) { return OptionalArg(optArg) }
// calling `foo()` gets zero value 0, calling `foo(100)` gets 100
// func bar(optArg ...int) { return OptionalArg(optArg, 42) }
// calling `bar()` gets default value 42, calling `bar(100)` gets 100
//
// Passing more than 1 item to `optArg` or `defaultValue` is undefined behavior.
// At the moment only the first item is used.
func OptionalArg[T any](optArg []T, defaultValue ...T) (ret T) {
if len(optArg) >= 1 {
return optArg[0]
}
if len(defaultValue) >= 1 {
return defaultValue[0]
}
return ret
}
func ReserveLineBreakForTextarea(input string) string {
// Since the content is from a form which is a textarea, the line endings are \r\n.
// It's a standard behavior of HTML.