TGViewer
Backend x Management Backend x Management @backendxmanagement · 84 subscribers
Post #63 103
noCopy в Go

Игрался я тут с атомарными переменными, что бы вспомнить синтаксис и посмотреть что за приметивы появились в Go пакете Sync. Я горяче люблю этот пакет, за то что есть функции типа:
func atomic.CompareAndSwapInt32(addr *int32, old int32, new int32) (swapped bool)
в которые можно передать любой вообще инт32 и это на мой взгляд намного правильнее, чем создавать примитив типа atomic.Int32, но он есть и вашему вниманию представляю его структуру:

type Int32 struct {
_ noCopy
v int32
}


Тут есть занимательный объект _ noCopy, который по факту struct{}, реализующий интерфейс Locker (это что -copylocks checker из go vet находил копирование объекта). Однако он не фейлит вам сборку, если вы копируете такой объект, а только кидает предупреждение в go vet, но все равно лучше чем ничего)))

К сожалению его нет внутри slice или map объекта, но если вы делаете свой кастомный объект, который лучше бы не копировать в Go - можете использовать noCopy, правда вам придется самим его проинициализировать он жеж приватный, но это не сложно

type noCopy struct{}

func (*noCopy) Lock() {}
func (*noCopy) Unlock() {}


но можно взять открытый пакет https://pkg.go.dev/github.com/savsgio/gotils/nocopy хотя на мо взгляд маленькая копия лучше маленькой зависимости
More from @backendxmanagement
  1. Sep 27, 2026Кейс-интервью в Авито (на тимлида) Я тут уже какое-то время прохожу собесы в Авито и если…
  2. Jul 31, 2026Многоуважаемый дядя Кент Бэк и его взгляд на то что происходит в IT Если у вас хорошо с ан…
  3. Jul 11, 2026Командная работа Переодически возвращаюсь к видосикам потрясающего человека Дмитрия Болдыр…
  4. Jun 16, 2026LLM для менеджерства Сейчас время веселья, угара и новых темок в плане разработки. Вышли н…
  5. Apr 17, 2026Podlodka PHP Crew #8. Неделя «Современный стек PHP-разработки» Я все еще тут в ПК и у нас…
  6. Mar 30, 2026Concurrency Чисто случайным образом я тут вспомнил своего великолепного препода прекрасной…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →