文档: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 boolAppendSlice boolTypeCheck boolTransformers Transformers// contains filtered or unexported fields}func WithAppendSlice(config *Config) // slice不是覆盖,而是追加func WithOverride(config *Config) // 使用非空SRC属性值覆盖非空DST属性func WithSliceDeepCopy(config *Config) // 一个个复制slice中的值
