[О блоге] [наверх] [пред] [2023-07-24 21:36:24+03:00] [7c186e7a8451ab256d92a578157714b5eeb11b10]
Темы: [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
    
    *** kmeaw [2023-07-25 21:04]:
    >Примерно месяц назад починили: GOEXPERIMENT=loopvar
    
    Кстати, да! Упоминание про loopvar я точно где-то встречал. Ну это не то
    чтобы было "сломано", но на грабли люди тут наступают, бывает.