文档:https://pkg.go.dev/github.com/imdario/mergo
Func
// Map从src中设置dst中的字段值。SRC可以是一个以字符串为key的map 或 结构体。
// DST必须相反:如果SRC是一个map, DST必须是一个有效的指向struct的指针。
// 如果src是一个struct, dst必须为map[string]interface{}。
// 它不会合并未导出的(私有)字段,并将递归地做任何导出的字段。
// 如果dst是一个map, key将是src字段的名称,小写驼峰形式。
func Map(dst, src interface{}, opts ...func(*Config)) error
// 如果dst结构上的值类型属性本身不为空,Merge将使用相应的src属性填充它们的任何空值类型属性。
// DST和SRC必须是有效的同类型结构,DST必须是指向结构的指针。
// 它不会合并未导出的(私有)字段,并将递归地做任何导出的字段
func Merge(dst, src interface{}, opts ...func(*Config)) error
type Config
type Config struct {
Overwrite bool
AppendSlice bool
TypeCheck bool
Transformers Transformers
// contains filtered or unexported fields
}
func WithAppendSlice(config *Config) // slice不是覆盖,而是追加
func WithOverride(config *Config) // 使用非空SRC属性值覆盖非空DST属性
func WithSliceDeepCopy(config *Config) // 一个个复制slice中的值