Вопрос: Как правильно использовать `defer` внутри цикла и когда это плохо?

Python Middle Без компании
Вопрос: Как правильно использовать `defer` внутри цикла и когда это плохо?
Ответы
```go for _, name := range files { f, err := os.Open(name) if err != nil { continue } // ПЛОХО: defer в цикле копит открытые файлы до конца функции defer f.Close() } // Лучше: for _, name := range files { func() { f, err := os.Open(name) if err != nil { return } defer f.Close() // work }() } ``` **Как это работает:** `defer` выполняется при выходе из функции, а не итерации. В цикле это может копить ресурсы.