Files
Go-StudyExample/example/merge/BaseUse_test.go
T

67 lines
1.2 KiB
Go
Raw Normal View History

/*
* @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)
}