Вопрос: Как работает defer и в каком порядке вызываются defer-выражения?
Go
Junior
Без компании
Вопрос: Как работает defer и в каком порядке вызываются defer-выражения?
Ответы
defer откладывает вызов до выхода из функции. Несколько defer выполняются в порядке LIFO (последний — первый).
```go
package main
import "fmt"
func main() {
defer fmt.Println("3")
defer fmt.Println("2")
defer fmt.Println("1")
fmt.Println("0")
}
```
Вывод: 0 затем 1 2 3.