Garantias em Tempo de Execução
Nenhum comportamento indefinido em tempo de execução:
- O acesso a matrizes tem limites verificados.
- Estouro de números inteiros é definido (“pânico” ou wrap-around).
Pontos chave:
-
O estouro de números inteiros é definido por meio da flag
overflow-checks
em tempo de compilação. Se habilitada, o programa causará um pânico (uma falha controlada do programa). Caso contrário, será usada a semântica wrap-around. Por padrão, você obtém pânicos em modo de depuração (cargo build
) e wrap-around em modo de produção (cargo build --release
). -
A verificação de limites (“bounds checking”) não pode ser desativada com uma flag do compilador. Ela também não pode ser desativada diretamente com a palavra-chave
unsafe
. No entanto,unsafe
permite que você chame funções comoslice::get_unchecked
que não faz verificação de limites.