8 comments

[ 2.2 ms ] story [ 16.8 ms ] thread
> noCopy is a special marker for types that must not be copied after their first use.

if it looks like a hack, walks like a hack, and quacks like a hack...

(comment deleted)
This feels like it should ideally be something public in the structs package so anyone can leverage it, not just a specially blessed internal thing for the sync package.
It's not a specially blessed type. As the article says, anything that implements sync.Locker acts like this.
(comment deleted)
I spoke with Aliaksandr Valialkin (author of noCopy) and he gave me his reasons:

- https://x.com/valyala/status/2088638160242683954

He also gave an answer of what he would change now: https://itnext.io/go-evolves-in-the-wrong-direction-7dfda8a1...

It seems he's not happy anymore with the new direction of Go because they're implementing things from other languages.

> I'd remove user-defined generics from Go, and all the overcomplicated shit related to them, including iterator functions.

Go advances one blub ragequit at a time.

Very good article. Interesting approach working in harmony with `go vet`.