▲ | cyphar 4 days ago | |
I think there are a handful of cases where it is a nice-to-have and would be sad if it was removed in a hypothetical Go 2. Making a utility wrapper struct that overrides a method or adds new helper methods while keeping the rest of the interface is the most common example, though there are also some JSON spec type examples which are a little more esoteric. However, you need to be mentally prepared to switch to the boilerplate version as soon as things start getting hairy. But yes, for anything more complicated I have generally regretted trying to embed structs. I think requiring "unsafe" is a bit too strong, but I think the syntax should've been uglier / more in-your-face to discourage its use. (Fellow 10+ years Go user.) | ||
▲ | nemo1618 3 days ago | parent [-] | |
yup, less than 24 hours after writing that comment, I found myself embedding a struct so that I could override one method in a test, haha |