golang func 设置默认形参
时间: 2023-07-26 21:45:51 浏览: 194
golang善用go func和defer
在 Go 语言中,函数的参数不支持设置默认值。如果需要实现类似于默认参数的功能,可以通过函数重载或者使用结构体作为函数参数来实现。
举个例子,如果我们需要一个函数可以传入一个字符串和一个整数,但是如果不传入整数,则默认为 0,可以这样实现:
```
func example(str string, num int) {
// ...
}
func example(str string) {
example(str, 0)
}
```
这样,当我们调用 `example("hello")` 的时候,实际上会调用 `example("hello", 0)`。
另外一种实现方式是使用结构体作为函数参数,结构体中包含需要传入的所有参数,但是有些参数可以设置默认值。举个例子:
```
type ExampleArgs struct {
Str string
Num int
}
func example(args ExampleArgs) {
if args.Num == 0 {
args.Num = 42
}
// ...
}
```
这样,当我们调用 `example(ExampleArgs{Str: "hello"})` 的时候,实际上会调用 `example(ExampleArgs{Str: "hello", Num: 42})`。
阅读全文