mergo icon indicating copy to clipboard operation
mergo copied to clipboard

Override value with default fields

Open angeltears opened this issue 3 years ago • 1 comments

type People struct {
	Name *string  
	PhoneNumber *int64  
	Addr *string 
	IsTagGroup  *bool  
}

func TestUpdate(t *testing.T) {
	Name := "Jack"
	var PhoneNumber int64 = 1
	isTagGroup := true
	Addr := ""
	oldValue := &People{
		Name:        &Name,
		PhoneNumber: &PhoneNumber,
		IsTagGroup:  &isTagGroup,
		Addr:   &Addr,
	}
	newName := ""
	var newPhoneNumber int64 = 0
	newIsTagGroup := false
	newAddr := "where"
	updateValue := &People{
		Name:        &newName,
		PhoneNumber: &newPhoneNumber,
		IsTagGroup:  &newIsTagGroup,
		Addr: &newAddr,
	}
	_ = mergo.Merge(oldValue, updateValue, mergo.WithOverride)
	if !cmp.Equal(oldValue, updateValue) {
		t.Fatal("Override value with default value fields failed")
	}
}

angeltears avatar Apr 25 '21 07:04 angeltears

Thanks for opening a new issue. The team has been notified and will review it as soon as possible. For urgent issues and priority support, visit https://xscode.com/imdario/mergo

xscode-auto-reply[bot] avatar Apr 25 '21 07:04 xscode-auto-reply[bot]

Overriding pointers requires using mergo.WithoutDereference option.

darccio avatar Sep 11 '23 11:09 darccio