Вопрос: Как работает shadowing переменных и почему `:=` может быть опасен?
Go
Middle
Без компании
Вопрос: Как работает shadowing переменных и почему `:=` может быть опасен?
Ответы
```go
err := do()
if err != nil { return }
if err := do2(); err != nil { // новый err (shadowing)
return
}
// тут снова внешний err
```
**Как это работает:** внутренний `err` скрывает внешний в новом scope. Это может приводить к ошибкам; `go vet` помогает их находить.