Existem duas categorias diferentes de números em Rust: inteiros (que podem ter sinal ou não) e números de ponto flutuante.
O nome de um tipo numérico é formado por duas partes:
As seguintes combinações são possíveis:
u8, i8
u16, i16
u32, i32, f32
u64, i64, f64
u128, i128
Repare que existem apenas as variantes de 32 bits e 64 bits para números de ponto flutuante.
Rust não faz nenhuma conversão implícita de tipos.
Isso significa que, se você precisar transformar um tipo numérico em outro, terá que fazer isso explicitamente.
Ao converter de um tipo maior para um menor (por exemplo, de u64 para u32), você pode perder dados.
Converter de ponto flutuante para inteiro vai perder tudo depois do ponto decimal, arredondando para baixo na prática.
Neste exercício, você vai escrever código para analisar a produção de uma linha de montagem em uma fábrica de carros. A velocidade da linha de montagem pode variar de 0 (desligada) a 10 (máxima).
Na velocidade mais baixa (1), são produzidos 221 carros por hora. A produção aumenta linearmente com a velocidade. Então, com a velocidade em 4, ela deve produzir 4 * 221 = 884 carros por hora. No entanto, velocidades mais altas aumentam a chance de produzir carros defeituosos, que depois precisam ser descartados. A tabela a seguir mostra como a velocidade influencia a taxa de sucesso:
1 a 4: taxa de sucesso de 100%.5 a 8: taxa de sucesso de 90%.9 e 10: taxa de sucesso de 77%.Você tem duas tarefas.
Implemente um método para calcular a taxa de produção por hora da linha de montagem, levando em conta a taxa de sucesso:
assembly_line::production_rate_per_hour(6)
// Returns: 1193.4
Observe que o valor retornado é um f64.
Implemente um método para calcular quantos carros funcionais são produzidos por minuto:
assembly_line::working_items_per_minute(6)
// Returns: 19
Observe que o valor retornado é um u32.
Crie sua conta no Exercism para aprender e dominar Rust com 99 exercícios e mentoria humana de verdade, tudo de graça.