Rust · Avançado · Inglês · Técnico
Any
Trait da biblioteca padrão que dá identidade de tipo em execução. Com dyn Any é possível guardar valores de tipos variados e recuperá-los com downcast_ref.
Onde usar
Aparece em sistemas de plugins, mapas heterogêneos e eventos. Só funciona com tipos 'static.
Em código
use std::any::Any;
let v: Vec<Box<dyn Any>> =
vec![Box::new(1_i32), Box::new("oi")];
for x in &v {
if let Some(n) = x.downcast_ref::<i32>() {
println!("inteiro {n}");
}
}Exemplos
Store it as Box<dyn Any> and downcast later.
Guarde como Box<dyn Any> e faça o downcast depois.
downcast_ref returns None for the wrong type.
O downcast_ref devolve None para o tipo errado.
Cuidado
Não é reflexão: Any só diz se o valor é de um tipo que você já conhece, sem listar campos ou métodos.
Sinônimos
std::any::Any