Rust · Avançado · Inglês · Técnico
const generics
Parâmetros genéricos que são valores constantes, como N em [T; N], em vez de tipos. Permitem structs e funções que funcionam com arrays de qualquer tamanho.
Onde usar
Aparecem em [T; N] e em implementações de traits para arrays. Estão estáveis para inteiros, bool e char; expressões como N + 1 em tipos ainda não.
Em código
struct Buf<const N: usize> {
dados: [u8; N],
}
let b = Buf::<4> { dados: [0; 4] };
println!("{}", b.dados.len());
fn soma<const N: usize>(a: [i32; N]) -> i32 {
a.iter().sum()
}Exemplos
Use const generics to take any array length.
Use const generics para aceitar qualquer tamanho de array.
The buffer size is a const generic parameter.
O tamanho do buffer é um parâmetro const generic.
Cuidado
N não é um valor em tempo de execução: precisa ser conhecido na compilação.