Skip to content

Commit fe6f8e5

Browse files
committed
add readme
1 parent 717aa59 commit fe6f8e5

File tree

2 files changed

+80
-0
lines changed

2 files changed

+80
-0
lines changed

README.md

Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
# Go可变参数
2+
3+
# 一、这是什么
4+
这个库为Go中的可变参数提供了一些辅助方法,以便更爽的使用可变参数。
5+
6+
# 二、安装
7+
```bash
8+
go get -u github.com/golang-infrastructure/go-variable-parameter
9+
```
10+
11+
# 三、Example
12+
13+
```go
14+
package main
15+
16+
import (
17+
"fmt"
18+
variable_parameter "github.com/golang-infrastructure/go-variable-parameter"
19+
)
20+
21+
type FooOptions struct {
22+
Foo string
23+
Bar int
24+
}
25+
26+
var DefaultFooOptions = FooOptions{
27+
Foo: "default foo",
28+
Bar: 10,
29+
}
30+
31+
func Foo(optionsVariableParams ...FooOptions) {
32+
// 如果传递了options则使用传递的,如果没传递则使用默认的
33+
options := variable_parameter.TakeFirstParamOrDefault(optionsVariableParams, DefaultFooOptions)
34+
fmt.Println(options.Foo)
35+
}
36+
37+
func main() {
38+
39+
// 不传递参数
40+
Foo()
41+
42+
// 传递参数
43+
Foo(FooOptions{Foo: "custom foo"})
44+
45+
}
46+
```
47+
48+

examples/main.go

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
package main
2+
3+
import (
4+
"fmt"
5+
variable_parameter "github.com/golang-infrastructure/go-variable-parameter"
6+
)
7+
8+
type FooOptions struct {
9+
Foo string
10+
Bar int
11+
}
12+
13+
var DefaultFooOptions = FooOptions{
14+
Foo: "default foo",
15+
Bar: 10,
16+
}
17+
18+
func Foo(optionsVariableParams ...FooOptions) {
19+
// 如果传递了options则使用传递的,如果没传递则使用默认的
20+
options := variable_parameter.TakeFirstParamOrDefault(optionsVariableParams, DefaultFooOptions)
21+
fmt.Println(options.Foo)
22+
}
23+
24+
func main() {
25+
26+
// 不传递参数
27+
Foo()
28+
29+
// 传递参数
30+
Foo(FooOptions{Foo: "custom foo"})
31+
32+
}

0 commit comments

Comments
 (0)