ExpertiDict

Rust · Avançado · Inglês · Técnico

two-phase borrow

/tuː feɪz ˈbɑːɹoʊ/substantivo

Mecanismo em que um empréstimo &mut começa reservado e só se torna exclusivo no uso real, permitindo ler o mesmo valor nos argumentos da chamada.

Onde usar

É por isso que v.push(v.len()) compila. Explica por que algumas chamadas aninhadas funcionam e outras equivalentes, com variável intermediária, falham.

Em código

let mut v = vec![1, 2];
v.push(v.len()); // duas fases
println!("{:?}", v);

Exemplos

Two-phase borrows let v.push(v.len()) compile.

Os two-phase borrows deixam v.push(v.len()) compilar.

That only works thanks to two-phase borrows.

Isso só funciona graças aos two-phase borrows.

Cuidado

É uma exceção estreita: dentro do argumento só se pode ler o valor, e qualquer tentativa de alterá-lo continua sendo erro.

Veja também

Todos os termos de Rust