Files

67 lines
1.2 KiB
Go
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
/*
* @Author : huangzj
* @Time : 2021/2/2 11:37
* @Description
*/
package merge
import (
"fmt"
"log"
"testing"
"github.com/imdario/mergo"
)
type redisConfig struct {
Address string
Port int
DB int
}
var defaultConfig = redisConfig{
Address: "127.0.0.1",
Port: 6381,
DB: 1,
}
//基础使用,如果被merge的对象字段有值则不覆盖
func TestBaseUse(t *testing.T) {
var config redisConfig
if err := mergo.Merge(&config, defaultConfig); err != nil {
log.Fatal(err)
}
fmt.Println("redis address: ", config.Address)
fmt.Println("redis port: ", config.Port)
fmt.Println("redis db: ", config.DB)
var m = make(map[string]interface{})
if err := mergo.Map(&m, defaultConfig); err != nil {
log.Fatal(err)
}
fmt.Println(m)
}
//测试字段覆盖
func TestOverride(t *testing.T) {
var config redisConfig
if err := mergo.Merge(&config, defaultConfig); err != nil {
log.Fatal(err)
}
fmt.Println("redis address: ", config.Address)
fmt.Println("redis port: ", config.Port)
fmt.Println("redis db: ", config.DB)
var m = make(map[string]interface{})
if err := mergo.Merge(&config, defaultConfig, mergo.WithOverride); err != nil {
log.Fatal(err)
}
fmt.Println(m)
}