Tuesday, April 30, 2024
HomeGolangOught to the mum or dad be reference or internal slice to...

Ought to the mum or dad be reference or internal slice to keep away from copying over the wire – Getting Assist


Hello,

I’m attempting to grasp what can be one of the simplest ways to go in relation to utilizing a sort Consumer that accommodates slice of different varieties Remark or others. Every instance have their very own questions beneath.

Thanks

kind Consumer struct {
	Identify     string
	Age      int
	Wage   float64
	Username string
	Password string
	Feedback []Remark // Or *Remark
	// SomeOtherSlices []Different
}

kind Remark struct {
	ID        string
	Message   string
	CreatedAt time.Time
	DeletedAt *time.Time
}

// Would internal `Feedback` be copied everytime I handed returned worth round?
func storageV1() *Consumer {
	return &Consumer{
		// ...
		Feedback: []Remark{{
			// ..
		}},
	}
}

// Given the returned worth is a replica and the internal `Feedback` a pointer, would internal `Feedback` be copied everytime I handed returned worth round?
func storageV2() Consumer {
	return Consumer{
		// ...
		Feedback: []*Remark{{ // If the sphere was a pointer
			// ..
		}},
	}
}

// I'm not certain if each should be pointer?
func storageV3() *Consumer {
	return &Consumer{
		// ...
		Feedback: []*Remark{{ // If the sphere was a pointer
			// ..
		}},
	}
}

The slice contents don’t get copied until you’re employed to do it by calling copy(). The slice worth is copied, however that’s not far more than a pointer. You don’t acquire something in regard to stopping copying by passing a pointer to a slice.

@mje

If I perceive it proper, what you’re saying is that; going with storageV1 makes extra sense in comparison with different two as a result of, neither Consumer’s primary properties nor Feedback property can be copied in reminiscence irrespective of what number of occasions *Consumer is handed over the wire from one place to a different.

RELATED ARTICLES

LEAVE A REPLY

Please enter your comment!
Please enter your name here

Most Popular

Recent Comments