Ловушка в Go циклах

Что: 7c186e7a8451ab256d92a578157714b5eeb11b10

Когда: 2023-07-24 21:36:24+03:00

Темы: go

Ловушка в Go циклах

https://flak.tedunangst.com/post/dodging-the-go-loop-trap
Прекрасно знаю ведь про переменные в циклах, всё ясно и понятно, но на
днях потратил несколько часов на поиск ошибки которая была именно такой
как описано в статье. Не уследил по неаккуратности.

оставить комментарий

комментарий 0:

From: kmeaw
Date: 2023-07-25 20:09:11Z

Примерно месяц назад починили:

For Go 1.22, the Go team is considering changing the semantics of for
loop variables to prevent unintended sharing in per-iteration closures
and goroutines. Go 1.21 contains a preliminary implementation of the
change, enabled by setting GOEXPERIMENT=loopvar when building your
program.

комментарий 1:

From: Sergey Matveev
Date: 2023-07-26 06:04:33Z


>Примерно месяц назад починили: GOEXPERIMENT=loopvar

Кстати, да! Упоминание про loopvar я точно где-то встречал. Ну это не то
чтобы было "сломано", но на грабли люди тут наступают, бывает.

Сгенерирован: SGBlog 0.34.0