go mergo 合并结构体字段

mergo可以在相同的结构体或map之间赋值,可以将结构体的字段赋值给map,也可以将map的值赋值给结构体的字段

语法

mergo.Merge(目标对象,源对象) 将源对象中的字段赋值到目标对象的对应字段上

import (
    "github.com/imdario/mergo"
    "log"
    "fmt"
)

type redisConfig struct {
   Address  string
   Port     int
   DB       int
}

var defaultConfig = redisConfig {
   Address: "127.0.0.1",
   Port:    6381,
   DB:      1,
}

func main() {
   var config redisConfig
   if err := mergo.Merge(&config, defaultConfig); err!=nil {
        log.Fatal(err)    
   }
   fmt.Print(config)
}

输出

{127.0.0.1 6381 1}

TIL - fmt 是 format 的缩写 :expressionless:

不懂就问 TIL啥意思

Today I Learned