```
type ParamsRequire struct {
Require bool
Default string
ToInt bool
StringMaxLen int
StringMinLen int
IntMax int
IntMin int
}
```
```
func DefaultParamsRequire() *ParamsRequire {
return &ParamsRequire{
Require: false,
Default: "",
ToInt: false,
StringMaxLen: -1,
StringMinLen: -1,
IntMax: -1,
IntMin: -1,
}
}
```
```
func DefaultParamsRequire() ParamsRequire {
return ParamsRequire{
Require: false,
Default: "",
ToInt: false,
StringMaxLen: -1,
StringMinLen: -1,
IntMax: -1,
IntMin: -1,
}
}
```
结构体在赋值给变量或者函数传参时,会复制一份
比如
//第二种
a:=DefaultParamsRequire()
b := a
b.IntMin = 10
a.IntMin的值还是-1
如果用第一种则不是复制一份,是引用关系,b变a也变
#1
更多评论
go只有值传递的概念,也就是复制一份传给别人。然而,为了传递对象,或者自定义结构体,总不能也搞值传递吧。毕竟我生成一个对象也不容易。那怎么办呢?就把对象的地址传给你就行了。于是&就是取引用地址的。
#2