Em [[Rust language|Rust]], o **escopo** de uma variável define a região do seu programa onde essa variável é considerada válida e acessível.
Quando você declara uma variável usando `let`, ela entra em escopo a partir do ponto de sua declaração. Ela permanece válida e utilizável até o final do bloco atual, ou "escopo", no qual foi definida. Uma vez que a execução sai desse bloco, a variável sai de escopo e não é mais válida.
Considere o seguinte exemplo:
```rust
{ // 's' não é válido aqui, pois ainda não foi declarado
let s = "hello"; // 's' torna-se válido a partir deste ponto
// Você pode usar 's' aqui, por exemplo: println!("{}", s);
} // Este escopo terminou, e 's' não é mais válido
// Tentar usar 's' aqui resultaria em um erro de compilação
```
Em essência, existem dois momentos críticos para a validade de uma variável:
1. **Entrada em escopo**: Quando uma variável é declarada, ela se torna válida e pode ser usada.
2. **Saída de escopo**: Quando o bloco no qual a variável foi declarada termina, a variável sai de escopo e não é mais válida.
Essa compreensão fundamental do escopo é crucial em [[Rust language|Rust]], especialmente quando introduzimos tipos como `String` e nos aprofundamos na propriedade.