From 0a994d3e254a2ea0b7cfb50a52ec63fe72a01697 Mon Sep 17 00:00:00 2001 From: CC11001100 Date: Fri, 30 Dec 2022 12:01:18 +0800 Subject: [PATCH 1/2] update example add output --- README.md | 4 ++-- examples/main.go | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index 5119d12..494343b 100644 --- a/README.md +++ b/README.md @@ -37,10 +37,10 @@ func Foo(optionsVariableParams ...FooOptions) { func main() { // 不传递参数 - Foo() + Foo() // Output: default foo // 传递参数 - Foo(FooOptions{Foo: "custom foo"}) + Foo(FooOptions{Foo: "custom foo"}) // Output: custom foo } ``` diff --git a/examples/main.go b/examples/main.go index d0e338b..9faae0c 100644 --- a/examples/main.go +++ b/examples/main.go @@ -24,9 +24,9 @@ func Foo(optionsVariableParams ...FooOptions) { func main() { // 不传递参数 - Foo() + Foo() // Output: default foo // 传递参数 - Foo(FooOptions{Foo: "custom foo"}) + Foo(FooOptions{Foo: "custom foo"}) // Output: custom foo } From 05f51aca553b3fc12d137c17f2c6965a49b1396c Mon Sep 17 00:00:00 2001 From: CC11001100 Date: Sat, 7 Jan 2023 02:08:51 +0800 Subject: [PATCH 2/2] add TakeFirstParamOrDefaultFunc --- variable_parameter.go | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/variable_parameter.go b/variable_parameter.go index ffe02e5..6739c5e 100644 --- a/variable_parameter.go +++ b/variable_parameter.go @@ -18,3 +18,11 @@ func TakeFirstParamOrDefault[T any](parameters []T, defaultValue T) T { return defaultValue } } + +func TakeFirstParamOrDefaultFunc[T any](parameters []T, defaultValueFunc func() T) T { + if len(parameters) > 0 { + return parameters[0] + } else { + return defaultValueFunc() + } +}