ExpertiDict

Rust · Intermediário · Inglês · Técnico

static lifetime

/ˈstætɪk ˈlaɪftaɪm/substantivo

O lifetime 'static indica uma referência válida por todo o programa, como literais de texto, ou um tipo que não contém referências de vida curta, como String.

Onde usar

Aparece no erro 'borrowed value does not live long enough' e em bounds como T: 'static, exigidos por thread::spawn. Muita gente corrige o erro errado só trocando para 'static.

Em código

let texto: &'static str = "fixo";
fn exige<T: 'static>(_t: T) {}
exige(String::from("ok"));
exige(texto);
// exige(&local); daria erro

Exemplos

spawn requires the closure to be 'static.

O spawn exige que a closure seja 'static.

A string literal is a &'static str.

Um literal de texto é um &'static str.

Cuidado

T: 'static não significa que o valor vive para sempre; só que ele não guarda referências que expirem antes.

Sinônimos

'static

Veja também

Todos os termos de Rust